xb_scaffold 1.1.10
xb_scaffold: ^1.1.10 copied to clipboard
基于provider封装的脚手架.
Changelog #
条目格式约定:每条以「新增 / 修复 / 优化 / 破坏性变更」中文前缀开头,一行一条。 版本按时间升序排列;早期版本中无法考据的 "optimized" 类条目已统一归并为「常规优化与维护」。
1.1.10 #
- 修复
reset()后新 VM 永远收不到widgetDidBuilt:postFrame 回调原来只在 initState 注册一次,现在每次生成新 VM(initState/reset)都会重新调度,同一帧内多次 reset 合并为一次且只回调当前 VM;新增回归测试 - 修复 VM 销毁窗口期
mounted假阳性:_disposed原来在 dispose 末尾才置位、宿主state.mounted在 super.dispose() 前仍为 true,重写的 dispose 及其同步回调里的 notify 会通过检查打到正在销毁的 element;新增框架内部入口disposeFromHost()(宿主销毁/reset 前先置 disposed 再执行 dispose),mounted 在整个销毁链路上保持失效;新增回归测试
0.0.1 #
- base init
0.0.2 #
- 常规优化与维护
0.0.3 #
- 常规优化与维护
0.0.4 #
- 新增 XBVMLessWidget
0.0.5 #
- 新增注释、优化
0.0.6 #
- 增加路由
0.0.7 #
- 增加去重数组 xb_unique_list
0.0.8 #
- 常规优化与维护
0.0.9 #
- 常规优化与维护
0.0.10 #
- 去除actionSheet白色背景
0.0.11 #
- XBImage增加Uint8List数据显示
0.0.12 #
- 增加pop到根页面方法
0.0.13 #
- 新增loading、toast新增淡入淡出效果
0.0.14 #
- 新增iOSpush效果
0.0.15 #
- 修复安卓OnWillPop错误
0.0.16 #
- 去除警告
0.0.17 #
- 修改命名
0.0.18 #
- XBPageVM改成非抽象类
0.0.19 #
- 路由方法提升为全局方法
0.0.20 #
- 常规优化与维护
0.0.21 #
- 常规优化与维护
0.0.22 #
- 常规优化与维护
0.0.23 #
- 优化全局loading、添加路由栈改变流
0.0.24 #
- 全局loading的时候,屏蔽XBPage的物理返回键
0.0.25 #
- 优化路由
0.0.26 #
- 优化路由
0.0.27 #
- 优化actionSheet
0.0.28 #
- 优化actionSheet
0.0.29 #
- 新增 分组头部悬浮列表 XBHoveringHeaderList
0.0.30 #
- 常规优化与维护
0.0.31 #
- 添加路由打印信息
0.0.32 #
- 修复bug
0.0.33 #
- 常规优化与维护
0.0.34 #
- 修复bug
0.0.35 #
- 增加List的stack拓展
0.0.37 #
- 常规优化与维护
0.0.38 #
- 常规优化与维护
0.0.39 #
- 为indexPath添加compareTo方法
0.0.40 #
- 优化XBButton点击效果
0.0.41 #
- 优化XBButton点击效果
0.0.42 #
- 修改actionSheet的dismiss文字的默认大小
0.0.43 #
- 修改toast左右区域无法点击的问题
0.0.44 #
- XBButton增加不可点击状态
0.0.45 #
- actionSheetWidget增加isScrollControlled属性
0.0.46 #
- 安卓和iOS返回控制方法增加vm参数
0.0.47 #
- 常规优化与维护
0.0.48 #
- dialog添加dialogContent
0.0.49 #
- dialog添加titleStyle
0.0.50 #
- 优化toast
0.0.51 #
- 修改toast的默认背景颜色为灰色、XBPage新增navigationBarTitle的颜色和字体设置
0.0.52 #
- 优化dialogWidget
0.0.53 #
- 添加设置loading样式接口
0.0.54 #
- 添加设置toast背景颜色接口
0.0.55 #
- 修改loading的内部命名,避免冲突
0.0.56 #
- 修复在VM刚创建的时候showLoading不起作用
0.0.57 #
- 更新协议
0.0.58 #
- XBWidget改成继承自StatefulWidget
0.0.59 #
- XBWidget新增rebuild vm方法
0.0.60 #
- 常规优化与维护
0.0.61 #
- 修复vm没有调用dispose方法导致内存泄漏
0.0.62 #
- 增加XBRoute的生命周期willHide、willShow、willDispose
0.0.63 #
- XBWidget增加didChangeDependencies、didUpdateWidget
0.0.64 #
- 常规优化与维护
0.0.65 #
- XBVM增加state引用
0.0.66 #
- 修改命名
0.0.67 #
- XBWidgetState增加wantKeepAlive
0.0.68 #
- 常规优化与维护
0.0.69 #
- 新增:XBImage展示file的时候,相同路径可以刷新展示
0.0.70 #
- 暴露xb_file_image
0.0.71 #
- 新增XBTip组件
0.0.72 #
- 优化XBTip组件
0.0.73 #
- 优化XBTip组件
0.0.74 #
- 新增XBRefreshTask、新增XBNetImgSizeUtil
0.0.75 #
- XBVM新增disposed标记、新增XBTimer
0.0.76 #
- 暴露XBTimer给外部
0.0.77 #
- 修复XBTip的bug
0.0.78 #
- XBUniqueList增加拓展方法
0.0.79 #
- 优化XBTip
0.0.80 #
- 新增XBPreventMultiTap
0.0.81 #
- dialog新增按钮文字颜色设置
0.0.82 #
- 添加页面log
0.0.83 #
- 修改命名
0.0.84 #
- pageLogInfo增加分隔符参数
0.0.85 #
- 增加xb_print和XBHttp
0.0.86 #
- 拦截器增加queryParameters打印
0.0.87 #
- 修改queryParameters参数名称、pageLog添加时间
0.0.88 #
- 暴露dio拦截器
0.0.89 #
- 添加XBParse
0.0.90 #
- 修改XBParse函数为全局函数
0.0.91 #
- 修改目录结构、XBButton添加disable点击事件
0.0.92 #
- 添加eventbus
0.0.93 #
- 频繁点击添加错误回调
0.0.94 #
- 常规优化与维护
0.0.95 #
- optimize eventBus
0.0.96 #
- 优化parse int
0.0.97 #
- 新增xb_title_picker
0.0.98 #
- 新增xb_title_picker头文件
0.0.99 #
- 新增xb_def
0.0.100 #
- loading可以自定义显示的文本
0.0.101 #
- 局部loading添加content响应参数设置
0.0.102 #
- actionSheetWidget新增参数
0.0.103 #
- XBVM新增widgetDidBuilt方法
0.0.104 #
- 常规优化与维护
0.0.105 #
- 常规优化与维护
0.0.106 #
- 修复toast bug
0.0.107 #
- 打印新增时间
0.0.108 #
- 新增XBWaitTask、修复ListView滚动Appbar变色
0.0.109 #
- XBWaitTask优化、XBTip自适应位置
0.0.110 #
- XBButton优化
0.0.111 #
- XBButton优化
0.0.112 #
- 新增ValueGetter和ValueChanged定义
0.0.113 #
- 常规优化与维护
0.0.114 #
- 常规优化与维护
0.0.115 #
- 常规优化与维护
0.0.116 #
- 常规优化与维护
0.0.117 #
- 常规优化与维护
0.0.118 #
- 常规优化与维护
0.0.119 #
- 常规优化与维护
0.0.120 #
- 兼容web
0.0.121 #
- xbParse新增转模型功能
0.0.122 #
- 常规优化与维护
0.0.123 #
- 捕捉widget异常
0.0.124 #
- 兼容2.19.6 dart SDK
0.0.125 #
- XBImage兼容Harmony
0.0.126 #
- 常规优化与维护
0.0.127 #
- 添加多选actionSheet
0.0.128 #
- 修改命名
0.0.129 #
- list新增拓展、新增widget
0.0.130 #
- 添加头文件
0.0.131 #
- 添加获取XBWidget宽高方法
0.0.132 #
- 新增XBTextField
0.0.133 #
- XBImage新增isInPackage变量
0.0.134 #
- 新增设置xbGlobalContext接口
0.0.135 #
- 去除设置xbGlobalContext接口、优化endEditing、XBImage新增ui.Image支持
0.0.136 #
- 新增设置tempContext接口
0.0.137 #
- 修改鸿蒙判断
0.0.138 #
- 常规优化与维护
0.0.139 #
- 常规优化与维护
0.0.140 #
- 常规优化与维护
0.0.141 #
- 网页自动设置标题
0.0.142 #
- 导出设置网页标题的头文件
0.0.143 #
- 常规优化与维护
0.0.144 #
- 常规优化与维护
0.0.145 #
- 新增一些常用cell
0.0.146 #
- 常规优化与维护
0.0.147 #
- 常规优化与维护
0.1.0 #
- 常规优化与维护
0.1.1 #
- 常规优化与维护
0.1.2 #
- 新增cell
0.1.3 #
- 添加XBTable、优化XBTip
0.1.4 #
- 导出XBTable
0.1.5 #
- 导出XBTable
0.1.6 #
- XBDialogInput新增notEmptyTip和清空功能
0.1.7 #
- 新增浮动菜单
0.1.8 #
- 常规优化与维护
0.1.9 #
- 常规优化与维护
0.1.10 #
- 常规优化与维护
0.1.11 #
- 常规优化与维护
0.1.12 #
- 新增dialog的msgStyle参数
0.1.13 #
- 新增dialog的btnFontSize参数
0.1.14 #
- 新增dialog的默认msgStyle
0.1.15 #
- 新增drawer和endDrawer
0.1.16 #
- 新增leading宽度设置
0.1.17 #
- bug fixed
0.1.18 #
- 常规优化与维护
0.1.19 #
- 新增XBCellTitleArrow
0.1.20 #
- XBCell模块化
0.1.21 #
- 常规优化与维护
0.1.22 #
- 常规优化与维护
0.1.23 #
- 常规优化与维护
0.1.24 #
- XBCell新增backgroundWidget
0.1.25 #
- 常规优化与维护
0.1.26 #
- 颜色显示优化
0.1.27 #
- 常规优化与维护
0.1.28 #
- 添加XBButtonText、添加主要颜色、修复主题切换问题
0.1.29 #
- 使用primary color
0.1.30 #
- 优化参数命名
0.1.31 #
- bug fixed
0.1.32 #
- bug fixed
0.1.33 #
- 常规优化与维护
0.1.34 #
- 常规优化与维护
0.1.35 #
- 常规优化与维护
0.1.36 #
- 常规优化与维护
0.1.37 #
- 常规优化与维护
0.1.38 #
- 常规优化与维护
0.1.39 #
- 常规优化与维护
0.1.40 #
- 常规优化与维护
0.1.41 #
- 常规优化与维护
0.1.42 #
- 常规优化与维护
0.1.43 #
- 新增获取vm方法
0.1.44 #
- 修复长按输入框键盘会收起的问题
0.1.45 #
- 添加XBCellGroup
0.1.46 #
- 常规优化与维护
0.1.47 #
- 常规优化与维护
0.1.48 #
- 常规优化与维护
0.1.49 #
- 优化XBDialogInput
0.1.50 #
- 沉浸式导航栏
0.1.51 #
- 常规优化与维护
0.1.52 #
- 修改方法命名(needShowContentFromScreenTop -> needHideAppbar)
0.1.53 #
- 兼容getx
0.1.54 #
- 常规优化与维护
0.1.55 #
- 常规优化与维护
0.1.56 #
- 常规优化与维护
0.1.57 #
- 增加XBMaxHeightContainer和XBAdaptiveListView
0.1.58 #
- 常规优化与维护
0.1.59 #
- 常规优化与维护
0.1.60 #
- 常规优化与维护
0.1.61 #
- 常规优化与维护
0.1.62 #
- 常规优化与维护
0.1.63 #
- 常规优化与维护
0.1.64 #
- 增加 List 的 mutable
0.1.65 #
- XBPage 增加 MediaQuery.removePadding 选项
0.1.66 #
- 新增XBRootWidget
0.1.67 #
- 新增XBCellCustom
0.1.68 #
- 新增XBLogsUtil
0.1.69 #
- 新增异常捕捉处理
0.1.70 #
- 修复日志分享打包丢失问题
1.0.0 #
- 移除XBLogsUtil相关内容,避免鸿蒙兼容问题
1.0.1 #
- 常规优化与维护
1.0.2 #
- 补充包级路由 API 测试。
- 清理静态检查问题与废弃 API 使用。
- 优化 VM、loading、fade 动画的生命周期处理,减少空 catch。
- 修复 XBHttp 请求级拦截器未生效、GET 拼参冗余、上传未复用全局 Dio 配置等问题。
- 优化获取 vm 的方式,不再传值而是使用 context 获取。
- 增加 命令 xb.page、xb.widget、xb.parsemodel、xb.newmodel、xb.updateimg、xb.extension。
1.0.3 #
- 移除 network 模块,独立成 xb_network
1.0.4 #
- 优化异常捕捉初始化函数
1.0.5 #
- XBPage 分层
1.0.6 #
- xb.setup 命令优化
1.0.7 #
- 弹框增加优先级、主题图片使用默认图片兜底、增加 iOS 返回手势、减少依赖
1.0.8 #
- iOS 返回手势增加阻尼、bug 修复
1.0.9 #
- 优化 XBPage 返回控制和返回处理
1.1.0 #
- 新增 AI Skill:包内内置 skill/xb-scaffold(SKILL.md + reference 文档,全英文),供 AI 编程工具学习 xb_scaffold
- 新增
xb.skill命令:在项目根生成厂商中立的 AI 自装指南xb-scaffold-ai-guide.md(可选--out <path>、--force),文档内含给 AI 的安装指令与 section 标记切分的完整知识库,由 AI 自行转换安装到任意工具(Qoder/Claude Code/Cursor 等)的 skill/规则机制 xb.setup末尾自动生成该指南,接入即生成;make install-cli同步支持xb.skill
1.1.1 #
- 增加xb.build命令用于打包 iOS、安卓、ohos
1.1.2 #
- 常规优化与维护
1.1.3 #
- Web 平台兼容性修复:
XBRootWidget/XBFileImage/XBImgSizeUtil.getImageSizeFromFile/isHarmony/XBTrimTextInputFormatter等原先直接依赖dart:io的 API 改为条件导出(io 实现 + web stub),Web 工程引入xb_scaffold不再编译失败 - 双击退出抽为
exitApp():非 Web 平台行为不变(exit(0)),Web 平台回退为SystemNavigator.pop() XBVM新增mounted访问器(与State.mounted对齐):异步回调中访问context/state/widget前检查,避免页面销毁后使用悬空引用;notify()、loading 展示/隐藏等内部防护同步升级XBScaffold初始化竞态修复:主题异步初始化增加 token 校验,旧一轮初始化结果不再覆盖新一轮配置;新增didUpdateWidget,themeConfigs/loadingBuilder/toastBackgroundColor/maxPageLogLen变更时可正确生效
1.1.4 #
XBEventBus弱注册重构:Bus 对 listener 及其回调只持弱引用,非 VM 使用者忘记removeListener不再永久泄漏,注册项随 GC 自动失效并在 fire/prune 时剪除;XBVM.listen内部自动保管回调,VM 使用者无感知XBEventBus分发优化:按事件类型Map<Type, List>精准分发,不再对所有订阅者做 O(n) 类型过滤- 行为变化:事件分发改为按
runtimeType精确匹配(注册父类型、fire 子类型实例时不再收到);需要子类型语义请改用XBEventBus.on<T>()强订阅通道 setController废弃,新增initController:注入时机错误或重复初始化会 assert 报错,不再静默失效XBVM新增removeListen用于单独注销某个事件回调
1.1.5 #
- 主题持久化(存储委托模式):
XBScaffold新增themeIndexReader/themeIndexWriter可选参数,注入后自动“变更即存、启动回灌”,存储后端由业务方决定(SharedPreferences/MMKV/内存等),框架零存储依赖 changeTheme越界校验:index 越界时主题保持不变,debug 下抛AssertionError提前暴露(旧版会静默新建空主题,页面拿到默认色不报错)themegetter 修复:读取未初始化/越界主题时回落到默认主题(index 0)并 assert 提示,不再静默新建空主题污染_themeMap- 回灌防脏数据:持久化的越界/负数 index 被静默忽略,不会在启动时崩溃
1.1.6 #
- 破坏性变更:移除
XBPage.pushAnimationMilliseconds,不再用固定定时器猜测转场结束时机 addEnsureAfterPushAnimationTask改为监听Route.animation的AnimationStatus:转场真正结束(completed)时精确触发,自定义时长转场、被打断的转场(dismissed,任务随页面销毁废弃)均准确- 零时长转场(
transitionDuration == Duration.zero)立即视为完成;首帧延迟等极端场景由下一帧兜底检查覆盖 - 兼容说明:
goRouter/getx等第三方路由最终也会生成标准Route,ModalRoute.of均可拿到转场动画,行为一致
1.1.7 #
- 页面日志时间戳修复:
recordPageLog改用设备本地时间(旧实现toUtc().add(hours: 8)硬编码东八区,海外/非东八区设备时间戳错误) toastWidget失败可观测:首次失败记录日志后再重试;重试前显式检查 overlay 就绪,仍不可用则记录日志并安全丢弃,不再静默吞错
1.1.8 #
- README 新增「大页面性能优化」章节:拆分子 XBWidget / context.select / ValueNotifier 三种局部 rebuild 手段及重建统计方法
- 补齐核心模块测试(+19 个):路由观察者(push/pop 生命周期回调、三层路由、销毁取消订阅)、XBImage 类型分发(空值/bytes/svg/data-uri/网络/asset 全分支)、XBImgSizeUtil(PNG 解码与缓存)、5 个表单 formatter
1.1.9 #
xb.setup新增产物:在业务工程根目录生成README_XBScaffold.md(xb_scaffold 框架完整文档,内容为包内 README.md 原样复制,每次执行静默覆盖为当前包版本)xb.extension生成逻辑改为文件级跳过:已存在的文件保留不动(不覆盖用户定制),仅补齐缺失的文件;退出码不再因存在旧文件而报非 0,存量工程执行xb.setup/xb.extension可自动补齐新增模板- 主题系统新增
XBThemeFontFamily(全局 getterfontFamilies,默认def为 null 即系统默认字体,业务通过 extension 添加自定义字体族);xb.extension/xb.setup模板同步新增app_theme_font_family.dart XBDialogStyle新增maxWidth:dialog/dialogContent/XBDialogInput 卡片宽度三级取值(调用处 maxWidth > 全局样式 maxWidth > 框架默认 screenW - gapDef*2),超宽自动 cap,适配横屏收窄弹窗宽度