数据代理(MVVM.js)
1.通过一个对象代理对另一个对象中属性的操作(读/写)
2.通过vm对象来代理data对象中所有属性操作
3.好处:更方便的操作data中的数据
4.基本实现流程
1>通过Object.defineProperty()给vm添加与data对象的属性对应得属性描述符
2>所有添加的属性都包含getter/setter
3>在getter/setter内部去操作data中对应的属性数据
模板解析(compile.js)用来初始化显示
1.模板解析的关键对象:compile.js
2.模板解析的基本流程
1>将el的所有子节点取出,添加到一个新建的文档fragment中
2>对fragment中的所有层次子节点递归进行编译解析处理
对插值语法文本进行解析
对元素节点的指令属性进行解析
事件指令解析
一般指令解析
3>将解析后的fragment添加到el中显示
3.解析大括号表达式文本节点 {{name}} textnode textContent = value
1>根据正则对象得到匹配出的表达式字符串:子匹配/RegExp.$1
2>从data中取出表达式对应的属性值
4.事件指令解析
1>从指令名中取出事件名
2>根据指令的值从methods中得到对应的事件处理函数对象
3>给当前元素节点绑定指定事件名和回调函数的事件监听
4>指令解析完后,移除此指令属性
5.一般指令解析
1>得到指令名指令值
2>从data中根据表达式得到对应的值
3>根据指令名确定需要操作元素节点的什么属性
v-text textContent属性
v-html innerHtml属性
v-class className属性
4>将得到的表达式的值设置到对应的属性上
5>移除元素的指令属性
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。