从接下来的一段时间里,Mg要进行阅读源码的工作。再阅读源码前,梳理一下准备工作。
7项重要储备
1.flow
1.1 什么是flow
没有类型的静态检查是 JavaScript 语言的先天缺失,所有很多变量类型相关的问题只能在运行阶段暴露出来。为了使 JavaScript 语言的类型更加安全,业界的实践有 TypeScript;这些都需要你重新学习一套语言语法,然后由编译器把相应的代码编译成原生的 JavaScript 代码;在一个现有的系统中把当前代码改成 TypeScript 成本比较高,需要重写所有逻辑。
Facebook 推出的 Flow 是另一个思路。Flow 是一个静态类型检测工具;在现有项目中加上类型标注后,可以在代码阶段就检测出对变量的不恰当使用。Flow 弥补了 JavaScript 天生的类型系统缺陷。利用 Flow 进行类型检查,可以使你的项目代码更加健壮,确保项目的其他参与者也可以写出规范的代码;而 Flow 的使用更是方便渐进式的给项目加上严格的类型检测。那么这么好的 Flow,要怎么开始使用呢?
1.2 基础类型检查
Flow 支持原始数据类型,有如下几种:
boolean number string null void( 对应 undefined )
如下使用:
let str:string = ‘str‘; // 重新赋值 str = 3 // 报错
1.3 更多详情有如下资料
官方文档:flow.org/en/
Flow 的使用入门:zhuanlan.zhihu.com/p/26204569
欲知详情,可进一步阅读
2.发布/订阅模式
Vue 是内部是实现了双向绑定机制,使得我们不用再像从前那样还要自己操作 DOM 了。
其实 Vue 的双向绑定机制采用数据劫持结合发布/订阅模式实现的: 通过 Object.defineProperty()
来劫持各个属性的 setter,getter
,在数据变动时发布消息给订阅者,触发相应的监听回调。
3 Object.defineProperty
原文:https://www.cnblogs.com/magicg/p/12610075.html