1 / 13
文档名称:

Vue 源码解析:深入响应式原理(下).docx

格式:docx   大小:67KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Vue 源码解析:深入响应式原理(下).docx

上传人:xunlai783 2017/12/18 文件大小:67 KB

下载得到文件列表

Vue 源码解析:深入响应式原理(下).docx

相关文档

文档介绍

文档介绍:Vue 源码解析:深入响应式原理(下) 
Watcher
我们先来看一下 Watcher 类的实现,它的源码定义如下:
<!-源码目录:src/-->
export default function Watcher (vm, expOrFn, cb, options) {
// mix in options
if (options) {
extend(this, options)
}
var isFn = typeof expOrFn === 'function'
= vm
(this)
= expOrFn
= cb
= ++uid // uid for batching
= true
= // for lazy watchers
= []
= []
= new Set()
= new Set()
= null // for async error stacks
// parse expression for getter/setter
if (isFn) {
= expOrFn
= undefined
} else {
var res = parseExpression(expOrFn, )
=
=
}
=
? undefined
: ()
// state for avoiding false triggers for deep and Array
// watchers during ()
= = false
}
Directive 实例在初始化 Watche r时,会传入指令的 expression。Watcher 构造函数会通过 parseExpression(expOrFn, ) 方法对 expression 做进一步的解析。在前面的例子中, expression 是times,passExpression 方法的功能是把 expression 转换成一个对象,如下图所示:
可以看到 res 有两个属性,其中 exp 为表达式字符串;get 是通过 new Function 生成的匿名方法,可以把它打印出来,如下图所示:
可以看到 方法很简单,它接受传入一个 scope 变量,返回 。对于传入的 scope 值,稍后我们会进行介绍。在 Watcher 构造函数的最后调用了 方法,它的源码定义如下:
<!-源码目录:src/-->
= function () {
()
var scope = ||
var value
try {
value = (scope, scope)
} catch (e) {
if (
!== 'production' &&

) {
warn(
'Error when evaluating expression ' +
'"' + + '": ' + (),

)
}
}
// "touch" every property so they are all tracked as
// dependencies for deep watching
if () {
traverse(value)
}
if () {
value = (value)
}
if (

最近更新

二零二五年度柴油供应商与分销商合作协议范本.. 13页

二零二五年度档口租赁与联合营销推广合同 14页

二零二五年度水库承包及水资源调配合同 12页

二零二五年度汽车维修与物流运输合伙协议 15页

二零二五年度泵车租赁与临时设施搭建服务协议.. 15页

二零二五年度物流信息平台货运承包管理协议 17页

中国地理的智慧之光 6页

二零二五年度玻璃安装工程合同范本(环保) 18页

二零二五年度电力厂排水管维修保养及更换合同.. 17页

二零二五年度电力设施安全施工免责协议示范文.. 12页

二零二五年度电商园区电商直播基地租赁合同协.. 13页

二零二五年度电梯安装工程劳务合同范本 14页

二零二五年度电脑配件销售与维护服务合同 17页

上海市初三化学上册期末测评 5页

三年级预习格式详解 6页

三年级集合问题全解析 6页

三年级道德法治素质测验卷 7页

三年级起点英语教学这样做 5页

三年级语文期末测试答题卡 7页

三年级语文提升小学字词句训练 5页

三年级语文下册期中考试卷与解答 5页

英科医疗中标合同 7页

2025年山东省春季高考英语试题及答案 6页

折板絮凝池计算书 5页

高速公路改扩建路基路面拼宽施工技术 26页

港口季度生产经营分析报告 25页

贵州普通高等学校毕业生登记表 8页

iatf16949-2023质量手册(最新版) 58页

高中化学教材常考实验总结 4页

中国环境科学论文模板 3页