MVVM究竟是什麼,跟Jquery有什麼區別?vue
MVVM理解,跟MVC區別node
數據,視圖層是否分離後端
以數據驅動視圖app
MVVM 實現三要素dom
如何監聽變化,實現響應式函數
視圖模板解析,模板引擎this
將js中data對象屬性捆綁到render函數,最後返回vnode,render函數中結構與snabbdom中h函數類似spa
// vue function render () { with (this) { //將_c,_v,price的this省略,至關於this._c,this._vthis.price _c('div', {attrs: {'id': 'app'}}, [_c('span', [_v(_s(price))])]) //_c建立vnode,_v字符串節點,_s字符串轉話 } } // snabbdom h('div#app', [ h('span', vm.price) ])
dom如何生成的,如何在監聽變化後渲染,使用patch方法與snabbdom相同代理
更新渲染code
vm._update(vnode) { const prevVnode = vm.vnode vm._vnode = vnode if (!prevVnode) { vm.$el = vm.__patch__(vm.$el,vnode) //初次渲染 } else { vm.$el = vm.__patch__(prevVnode,vnode) } } function updateComponent() { vm._update(vm._render()) //此處render便是模板轉化的render函數,執行後可生成vnode }