国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

vue觀察模式的簡單理解

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 19:30:19
文檔

vue觀察模式的簡單理解

vue觀察模式的簡單理解:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于vue觀察模式的簡單理解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。以下是我對vue觀察者模式的理解:不要對框架的偏見, 你真的了解jquery、angular、react 等等,框架是什么只是工具而已。 你用過jqu
推薦度:
導(dǎo)讀vue觀察模式的簡單理解:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于vue觀察模式的簡單理解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。以下是我對vue觀察者模式的理解:不要對框架的偏見, 你真的了解jquery、angular、react 等等,框架是什么只是工具而已。 你用過jqu
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于vue觀察模式的簡單理解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

以下是我對vue觀察者模式的理解:

不要對框架的偏見, 你真的了解jquery、angular、react 等等,框架是什么只是工具而已。
你用過jquery的 trigger、on、off 事件綁定的方法嗎?事實(shí)上 vue 不過也是這種模式,只不過vue 是自動調(diào)用on方法,自動觸發(fā)trigger。甚至可以不用jquery對事件監(jiān)聽觸發(fā)的實(shí)現(xiàn)。其實(shí)最終解釋就是對某種事件的callback(基礎(chǔ)原理)。
以下是源碼目錄截圖:

3740524565-5ba6f27a49413_articlex.png

1... vue 實(shí)例初始化時,會對data函數(shù)返回的對象里的屬性調(diào)用以下方法,代碼注釋如下:

 // 這個是 vue 綁定自動綁定事件的方法和觸發(fā)事件方法, 會把data函數(shù)返回的對象變量屬性,重寫對應(yīng)屬性的 賦值 和獲取的操作。具體查看 (mdn Object.defineProperty api)
 Object.defineProperty(obj, key, {
 enumerable: true,
 configurable: true,
 get: function reactiveGetter () {
 const value = getter ? getter.call(obj) : val
 // watcher 對象, 如果存在
 if (Dep.target) {
 // 把Watcher 實(shí)例 推入 Dep 實(shí)例的 subs 數(shù)組里, 這個就相當(dāng)于 on
 dep.depend()
 if (childOb) {
 childOb.dep.depend()
 if (Array.isArray(value)) {
 dependArray(value)
 }
 }
 }
 return value
 },
 set: function reactiveSetter (newVal) {
 const value = getter ? getter.call(obj) : val
 /* eslint-disable no-self-compare */
 if (newVal === value || (newVal !== newVal && value !== value)) {
 return
 }
 /* eslint-enable no-self-compare */
 if (process.env.NODE_ENV !== 'production' && customSetter) {
 customSetter()
 }
 if (setter) {
 setter.call(obj, newVal)
 } else {
 val = newVal
 }
 childOb = !shallow && observe(newVal)
 // 通知 Dep 實(shí)例 中subs 里數(shù)組 中所有 Watcher 實(shí)例, 然后調(diào)用Watcher實(shí)例里的 update方法(), 這個就相當(dāng)于 trigger。
 dep.notify()
 }
 })
// Watcher 構(gòu)造函數(shù) 
 constructor (
 vm: Component,
 expOrFn: string | Function,
 cb: Function,
 options?: ?Object,
 isRenderWatcher?: boolean
 )

2...Watcher初始化時,會調(diào)用Dep.pushTarget方法, 把 Wathcer實(shí)例賦值到dep.js 里的Dep.target, 接著會根據(jù) exporFn,運(yùn)行exporFn 所代表的方法。這個方法里基本上包含調(diào)用 1...里的getter方法(想想render鉤子里的操作基本有獲取vue實(shí)例屬性data里的值或者獲取vue實(shí)例的計(jì)算屬性的值)

var vm = new Vue({
 data () {
 return {msg: '找個小姐姐!'}
 },
 // 相當(dāng)于 exporFn
 render(h) {
 return h('h3', {},
 // 這里面就會調(diào)用 msg 對應(yīng)的 getter方法
 this.msg
 )
 }
})

所以就會使 render 函數(shù) 與 Vue 實(shí)例 的 數(shù)據(jù) data屬性 和觀察屬性等產(chǎn)生聯(lián)系,這就形成一個閉環(huán)。當(dāng)其中的屬性變化,就會自動調(diào)用 setter 方法,從而觸發(fā)dep.notify 方法,進(jìn)而又會觸發(fā) dep.subs 里的 Watcher 實(shí)例調(diào)用 update方法,進(jìn)而更新。
(這部分代碼不知如何說,故此沒寫, 具體查看源碼)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

vue觀察模式的簡單理解

vue觀察模式的簡單理解:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于vue觀察模式的簡單理解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。以下是我對vue觀察者模式的理解:不要對框架的偏見, 你真的了解jquery、angular、react 等等,框架是什么只是工具而已。 你用過jqu
推薦度:
標(biāo)簽: 模式 VUE 了解
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美亚洲综合另类 | 国产精品激情综合久久 | 一边摸一边爽一边叫床视频 | 国产一级一级一级成人毛片 | 国产精品123区 | 日韩毛片大全 | 成人a毛片一级 | 国产在线精品观看一区 | 国产精品一区欧美日韩制服 | 国产精品亚洲一区二区三区久久 | 国产欧美久久一区二区 | 亚洲电影中文字幕 | 亚洲午夜一区二区三区 | 国产精品成人一区二区1 | 欧美在线视频一区二区 | 欧美日韩成人在线视频 | 国产成人在线免费视频 | 免费国产叼嘿视频大全网站 | 久久综合精品国产一区二区三区 | 精品一区二区三区的国产在线观看 | 激情一区二区三区成人 | 美女视频黄a视频全免费应用 | 亚洲精品国产综合一线久久 | 国产成人精品一区二区免费视频 | 日韩经典第一页 | 日韩区在线 | 久久精品国产一区二区 | 久久久久久久国产高清 | 国产一区免费在线观看 | 久久a毛片 | 国产综合精品久久久久成人影 | 亚洲欧美在线免费观看 | 婷婷色在线 | 亚洲国产精品一区二区久 | 久久一区二区三区免费 | 亚洲天堂一区二区三区 | 成人区精品一区二区毛片不卡 | 欧美a在线视频 | 国产精品久久久久久久牛牛 | 成人一a毛片免费视频 | 91精品国产高清久久久久久91 |