watch.js

手写Vue (1) 编译文本

人盡茶涼 提交于 2020-04-10 09:33:46
1. 当我们初始化数据后 就可以进行将数据进行挂载 首先先判断 配置是否有 el 如果有 el 再进行挂载 if (vm.$options.el) { vm.$mount(); } 2. $mount 这个方法中 我们首先要获取到 获取当前挂载的节点 let vm = this ; let el = vm.$options.el el = vm.$el = query(el) // 获取当前挂载的节点 3. 获取当前挂载的节点 有两种情况 el: ' #app ' ,ru el: document.getElementById( ' app;); 所以我们要判断el 是否是一个字符串 如果是字符串 的话 通过 document.querySelector 获取元素 否则直接返回 function query(el) { if ( typeof el === ' string ' ) { return document.querySelector(el); } return el } 4. 添加 渲染watchder observe/watch.js 传入一系列参数 let id = 0 ; class Watcher { // watch 有唯一标识 constructor(vm, exprOrfn, cb = () => { }, opts = {}) { // exprOrfn