Vue.js 设计与实现 知识点 Vol. 4 | 青训营笔记

110 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第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.