vue 實現流程:
1、把模板解析為 render 函式
·運用 with
·模板中的所有資訊都被 render 函式包含
·模板中用到的 data 中的屬性,都變成了 js 變數
·模板中的 v-model v-for v-on 都變成了 js 邏輯
·render 函式返回 vnode
vue三要素之模板解析
vue模板的本質是字串,有邏輯如 v-if v-for 等(模板轉換成 js 後【 render 函式 】通過js來實現邏輯,因為前端語言中,只有 js 是圖靈完備的語言),與 html 格式很像,但有很大區別。html 是靜態的, vue 的模板是動態的。不過,最終 vue 的模板都要通過 js 轉換為 html 來顯示。
模板中的所有內容都包含在了 render 函式中。
模板:
render 函式例項 (在 vue 原始碼中通過 log(code.render)所得,vue.js 版本 5.2.13)
// _c 返回 vnode
with(this),
[_c(
'div',
[_c(
'input',
],attrs:,
domprops:,
on:}}),
_v(" "),
_c('button',
},[_v("submit")])]
),_v(" "),
_c('div',
[_c(
'ul',
_l((list),
function(item)))
])])}
2、響應式開始監聽·object.defineproperty
·將data 的屬性**到 vm 上
// 模擬 vue 響應式
var vm = {}
var data =
var key, value
for(key in data),
set: function (newval)
})})(key)
}
3、首次渲染,顯示頁面且繫結依賴
·初次渲染,執行 updatecomponent, 執行 vm._render()
·執行 render 函式,會訪問到本篇文章例子的 vm.list 和 vm.title,也就是 data 下的資料
·會被響應式的 get 方法監聽到
·執行 updatecomponent,會走到 vdom 的 patch 方法
·patch 將 vnode 渲染成 dom,初次渲染完成
4、data 屬性變化,觸發 rerender (dom repatch、模板 rerender)
成功三要素
乙個人要想成功,以下三要素是必不可缺的。1 努力。乙個人成功的人士,必須有為了自己的事業拼搏的那種執著。乙個沒有恆心,不能吃一點苦的人,成功的可能性是很渺茫的。完成一件事情,興趣很重要,但不能只憑興趣。因為一件事情,不會是從開始到結束都是能讓你鬥志昂揚的。他會有一段平淡期,甚至低谷期,這時候,就需要...
事件三要素
dom 文件物件模型 bom 瀏覽器物件模式 js以事件驅動為核心的一們語言 事件三要素 1 事件源 a 執行者 b 誰引發的事件,事件的標籤,動作 2 事件 a 執行的事情 b 已經定義好的 點選,滑鼠移上 3 事件驅動程式 處理元素 a 執行結果 b 對樣式和html標籤的 dom操作 執行事件...
成功三要素
乙個人要想成功,以下三要素是必不可缺的。1 努力。乙個人成功的人士,必須有為了自己的事業拼搏的那種執著。乙個沒有恆心,不能吃一點苦的人,成功的可能性是很渺茫的。完成一件事情,興趣很重要,但不能只憑興趣。因為一件事情,不會是從開始到結束都是能讓你鬥志昂揚的。他會有一段平淡期,甚至低谷期,這時候,就需要...