大小限制
npm 上传的文件大小限制为 100M,如果超过 100M 会报错。
GitHub 图床仓库大小不能超过 1G。因为 GitHub 原则上是反对仓库图床化的,当仓库超过 1G 后会有人工审核仓库内容,如果发现用来做图床,轻则删库重则封号。需注意。
jsDelivr 加速的单文件大小为 50M。这也就限制了单张图片大小上限。
jsDelivr+npm 有 100MB 包大小限制
npm 饿了么节点没有大小限制
目前我使用的是cdn.cbd.int
访问1234jsd出品,网宿国内节点https://cdn.jsdelivr.net/npm/:package@:version/:fileunpkg 自建https://cdn.cbd.int/:package@:version/:file
npm流程
需要注册 npm 账号,可以去 npm 官网创建下,然后邮箱验证即可。
在头像下拉表点击 Account,在 Two-Factor Authentication 处启用 2FA双重认证,记住,这部分十分重要!会关联到登录账号和发布验证的部分。官方文档:2FA 双重认证,我使用的是 ...
遇到webview不能显示ip地址形式的网页问题非必要不去设置
在AndroidManifest.xml中添加如下代码android:usesCleartextTraffic=”true”添加到application标签中
1234<application android:usesCleartextTraffic="true"></application>
android:usesCleartextTraffic指示应用是否打算使用明文网络流量,如明文 HTTP。 对于目标 API 级别为 27 或更低级别的应用,默认值为 “true”。对于以 API 级别 28或更高级别为目标的应用,默认值为 “false”。如果将此属性设为 “false”,平台组件(例如 HTTP 和 FTP 堆栈、DownloadManager 和 MediaPlayer)会拒绝应用要使用明文流量的请求。
强烈建议第三方库也遵循此设置。避免使用明文流量的主要原因是缺乏机密性、真实性和防止篡改的保护措施。网络攻击者可以窃听传输的数据,还可以在不 ...
Fisher-Yate洗牌算法1234567function shuffleArray(array) { for (let i = array.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } return array;}
这个 shuffleArray 函数接受一个数组作为参数,并返回打乱顺序后的新数组。它使用了 Fisher-Yates 洗牌算法的思想:
从最后一个元素开始,向前遍历数组。
对于每个元素,生成一个随机索引 j,范围是从 0 到当前元素的索引 i。
将当前元素与随机索引 j 处的元素交换位置,通过解构赋值实现。
继续向前遍历数组,直到遍历完所有元素。
返回打乱顺序后的数组。
使用示例:1234const array = [1, 2, 3, 4, 5];const shuffledArr ...
升级flutter SDK时遇到的报错提示12Unknown flutter tag. Abandoning upgrade to avoid destroying local changes. It is recommended to use git directly if notworking on an official channel.
执行flutter upgrade --force命令强制升级
用vitepress搭建的图鸟Vue2文档演示Github仓库
flutter
未读前言今天用了一个flutter的pdf插件,但是在更新pdf的时候,发现没有刷新,查看源码发现是用到了安卓原生,于是就想到了强制刷新组件。
使用Key强制刷新组件使用 Key 属性:为 PDFView 组件提供一个唯一的 Key 属性。这样,当您需要更新数据时,可以通过更改 Key 属性来触发 PDFView 组件的重建。
123456789101112131415161718192021class _PDFViewState extends State<PDFView> { Key _pdfViewKey = UniqueKey(); @override Widget build(BuildContext context) { return PDFView( key: _pdfViewKey, // 设置唯一的 Key 属性 pdfData: widget.pdfData, // 其他属性和回调函数... ); } void updatePDFData(Uint8List newData) ...
2023.3.0版JRebel插件激活
删掉用户名下的.jrebel文件夹,否则之前激活失败会导致无法激活
下载最新版JRebel插件
打开IDEA,点击File->Settings->Plugins->Install Plugin from Disk…,选择下载的JRebel插件,点击OK
重启IDEA,点击settings->JRebel &Xrebel ->,选择激活
下载代理并双击打开 找对应版本下载 https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4
输入激活地址http://localhost:8888/{GUID},邮箱随便都可以,勾选同意,点击提交
guid在线生成地址 www.guidgen.com/
把JRebel设置为离线工作模式,点一下work offline。
flutter
未读资料参考Migrating to the New Material Buttons and their Themes
OutlinedButton 类OutlinedButton 类是一个 Material Design 风格的 “Outlined Button”,它继承自 ButtonStyleButton 类,表示一个带有按钮样式的可点击组件。
OutlinedButton 类的构造函数如下:
12345678910111213const OutlinedButton({ super.key, required super.onPressed, super.onLongPress, super.onHover, super.onFocusChange, super.style, super.focusNode, super.autofocus = false, super.clipBehavior = Clip.none, super.statesController, required super.child,});
这个构造函数接受 ...
引入pubspec.yaml1flutter_reactive_ble: ^5.0.3
Android需要将以下权限添加到 AndroidManifest.xml 文件中:
12345<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation"/><uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/><uses-permission android:name="android.permissi ...
GetX 状态管理本文是以 Vue 开发经验为基础,对 GetX 状态管理的使用进行记录。
引入仓库地址
12345# 非空安全最后一个版本(flutter 2.0之前版本)get: ^3.26.0# 空安全版本 最新版本请查看 https://pub.flutter-io.cn/packages/getget: ^4.6.5
1import 'package:get/get.dart';
主入口配置在主入口配置后就相当于 Vue 的全局引入了,可以在任意地方使用。引入方式为将 MaterialApp 改成 GetMaterialApp
123456789101112void main() { runApp(MyApp());}class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return GetMaterialApp( home: CounterGetPage(), ); ...