前端框架设计的核心要素

这个系列的文章是从Vue.JS原理与设计这本书读后总结关键点,挺推荐看这本书.

前言

设计前端框架必须从下面几点出发

  • 提升用户的的开发体验
  • 控制框架代码的体积
  • 框架要做到良好的Tree-Shaking
  • 框架应该输出怎么样的产物
  • 特性开关
  • 错误处理
  • 良好的Typescript类型支持

以上七点我们就挑比较重要的点来看

减少代码体积

简单举个例子: 在Vue源码中像一些重复的代码,警告

if(__DEV__ && res) {
	warn(`Fail ....`)
}

这里的__DEV__ 一般是rollupjs预设的, 在开发环境下为__DEV__为true, 在生产环境下为false, 这样, 这样算代码复用了减少代码体积.

这里提一嘴在工作中一般是用三个阶段: test,uat,prod, 分别代表: 测试, 提测, 生产 . 一般到了leader你才有后面两个权限.

Tree-Shaking

它是一种代码清除机制, 既然是前端框架, 它必须借助浏览器的ESM(ES Moudle)能力.

那么浏览器怎么清除代码的呢?

那就涉及到第二重点:副作用. 不产生副作用的函数就清除.下面看段代码

import {foo} './utils'
foo() // 顶级调用
fuction bar() {
	foo() // 函数内调用
}

上面可以看到顶级调用可能产生副作用,而函数内调用只要bar函数不调用就不会产生调用, 所以在Vue3源码中,我们告诉wenpack或者rollup.js哪些要顶级调用会产生副作用,哪些不会.就知道它怎么清除的.
一般注释:

exprot const isHTMLTag = /*#__PURE*/ makeMap(HTML_TAGS)

isHTMLTag属性就不会产生副作用,可以放心清除

良好的TypeScript类型支持

我们常见有个误区TS编写框架就能友好, 其实要让一个框架的TS类型引导友好甚至开发一个框架的功能用的时间还更多.

最后想说下, 文章可能写的一般,作者读书所记算笔记. 如果有兴趣一起交流技术的话加入qq群一起讨论讨论: 748541687

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

影风莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值