您好,登錄后才能下訂單哦!
數據代理(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>移除元素的指令屬性
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。