SuperAPI AI 工具集

meteor-blaze

测试与质量

查看项目

更新于 10-16 06:46

技能介绍

用途:在 Meteor 3 中构建或调试 Blaze 界面。Blaze 把 Spacebars 模板编译为 JavaScript,并在响应式依赖失效时只更新小范围 View 区域;状态、订阅、DOM 副作用与异步工作应由模板实例持有,应用代码使用公开的 Template、Blaze、Spacebars、Tracker API。

使用方式:新应用运行 meteor create --blaze <name>,随后检查生成的 package.json、.meteor/packages、客户端入口和 rspack.config.js,再决定是否改动包或构建设置。每个模板的 .html 需从注册其助手、事件和生命周期钩子的 JavaScript 模块导入,并从客户端入口图导入该模块。同步 Minimongo 读取放在普通助手中;助手若返回 Promise,需显式渲染 pending、rejected、resolved 状态。ReactiveVar、ReactiveDict、this.autorun、this.subscribe 放在模板实例上;DOM 初始化放 onRendered,外部副作用在 onDestroyed 中撤销;可复用子模板传具名数据和回调;发布与写入权限保留在服务端。

能力与限制:Meteor 3.4+ 默认用 Rspack 创建 Blaze 应用,早期 Meteor 3 可能用 Meteor 打包器;当前脚手架声明显式客户端与服务端 meteor.mainModule,启用现代构建栈并包含 blaze-html-templates、tracker、reactive-var、hot-module-replacement、blaze-hot、rspack,但这些包不会在 Rspack 图中启用 Blaze HMR,Blaze 编辑会触发快速整页刷新并重置页面局部状态;blaze-hot 替换仅当 Meteor 打包器拥有模块时生效。不要仅凭版本名推断已安装的 Blaze 运行时,应检查 .meteor/versions。异步助手可用 {{#let}} 区分加载、拒绝与空结果,但 Spacebars 保存最近一次解析值,未必是最新 Promise 的结果,重叠请求需用中止信号、代次令牌或串行队列,不能假定 #let 会排序结果。避免从所有助手返回异步 Minimongo 值、await 后不恢复 Tracker 计算、把 {{#each}}{{else}} 当加载指示(也覆盖拒绝和空序列)、隐式继承上下文、组件内用全局 $()/document.querySelector、未受信内容走三花括号或 SafeString、Blaze.render 创建的节点不调 Blaze.remove,以及使用 UI.body、Template.define 等私有或已移除 API。路由边界上,通用 Rspack/SWC 配置、迁移到 Rspack、Meteor 2 到 3 升级、发布订阅、Mongo/Minimongo、测试与安全应交给对应技能。