这是我参与「第四届青训营 」笔记创作活动的的第26天
我将创作一些 Vue.js 学习相关的笔记。
《Vue.js设计与实现》笔记 Vol. 4
框架设计的核心要素
特性开关
在设计框架时,框架会给用户提供诸多特性,例如提供A、B、C三个特性给用户,同时还提供了a、b、c三个对应的特性开关,用户可以通过设置a、b、c为true或false来代表开启或关闭对应的特性。优点:
- 用户关闭的特性可以被Tree-Shaking
- 这种机制为框架设计带来了灵活性,可以通过特性开关为框架添加新特性而不用担心资源体积变大。框架升级时,也能通过特性开关来支持遗留 API,而新用户可选择不使用遗留 API,从而最小化最终打包的资源体积。
实现方法:rollup.js 的预定义常量插件 FEATURE_OPTIONS_API 控制 VUE_OPTIONS_API
如果用户明确知道自己不会使用选项式 API,可以使用 VUE_OPTIONS_API 开关来关闭该特性,减小最终资源体积。
错误处理
框架错误处理机制的好坏决定了用户应用程序的健壮性,也决定了用户开发时处理错误的心智负担。
Vue.js 能为用户提供统一的错误处理接口,使得错误处理的能力完全由用户控制,用户既可以选择忽略错误,也可以调用上报程序将错误上报给监控系统。(源码中的 callWithErrorHandling 函数)
另外,在 Vue.js 中,我们也可以注册统一的错误处理函数:
import App from 'App.vue'
const app = createApp(App)
app.config.erroHandler = () => {
// 错误处理程序
}
良好的 TypeScript 类型支持
TypeScript 是由微软开源的编程语言,是 JavaScript 的超集,能够为 JavaScript 提供类型支持。
使用 TS 的优点:代码即文档、编辑器自动提示、一定程度上能够避免低级 bug、代码的可维护性更强。
因此对 TS 类型的支持是否完善也成为评价一个框架的重要指标。
此外,还要考虑对 TSX 的支持。
感想
一个专业的、完备的框架设计可不仅仅是“能跑就行”,每一个段源码可能都包含规范的开关控制、错误提示,可谓是精湛细腻,令人称奇。
引用参考
霍春阳. Vue.js设计与实现[M]. 1. 北京:人民邮电出版社, 2022.