亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Vue發(fā)布訂閱模式實現(xiàn)過程圖解

瀏覽:34日期:2023-01-23 14:20:30

vue項目中不同組件間通信一般使用vuex,通常情況下vuex和EventBus不應(yīng)該混用,不過某些場景下不同組件間只有消息的交互,這時使用EventBus消息通知的方式就更合適一些。

圖解

Vue發(fā)布訂閱模式實現(xiàn)過程圖解

Vue發(fā)布訂閱模式實現(xiàn)過程圖解

html

<body> <script src='http://www.aoyou183.cn/bcjs/Dvue.js'></script> <script> const app = new DVue({ data: { test: 'I am test', foo: { bar: 'bar' } } }) app.$data.test = 'hello world!' // app.$data.foo.bar = 'hello!' </script></body>

Dvue.js

class DVue { constructor(options) { this.$options = options // 數(shù)據(jù)響應(yīng)化 this.$data = options.data this.observe(this.$data) // 模擬一下watcher創(chuàng)建 // 激活get 并將依賴添加到deps數(shù)組上 new Watcher() this.$data.test new Watcher() this.$data.foo.bar } observe(value) { // 判斷value是否是對象 if (!value || typeof value !== ’object’) { return } // 遍歷該對象 Object.keys(value).forEach(key => { this.defineReactive(value, key, value[key]) }) } // 數(shù)據(jù)響應(yīng)化 defineReactive(obj, key, val) { // 判斷val內(nèi)是否還可以繼續(xù)調(diào)用(是否還有對象) this.observe(val) // 遞歸解決數(shù)據(jù)嵌套 // 初始化dep const dep = new Dep() Object.defineProperty(obj, key, { get() { // 讀取的時候 判斷Dep.target是否有,如果有則調(diào)用addDep方法將Dep.target添加到deps數(shù)組上 Dep.target && dep.addDep(Dep.target) return val }, set(newVal) { if (newVal === val) { return; } val = newVal // console.log(`${key}屬性更新了:${val}`) dep.notify() // 更新時候調(diào)用該方法 } }) }}// Dep: 用來管理Watcherclass Dep { constructor() { // 這里存放若干依賴(watcher) |一個watcher對應(yīng)一個屬性 this.deps = []; } // 添加依賴 addDep (dep) { this.deps.push(dep) } // 通知方法 notify() { this.deps.forEach(dep => dep.update()) }}// Watcherclass Watcher { constructor () { // 將當前watcher實例指定到Dep靜態(tài)屬性target上 Dep.target = this // 當前this就是Watcher對象 } update() { console.log(’屬性更新了’) }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 欧美在线视频一区 | 国产91亚洲精品 | 欧美黑人在线视频 | 欧美三茎同入 | 九九热精| 国产乱码一区二区三区四区 | 国产精品国产 | 在线观看日韩视频 | a级毛片在线观看 | 99久久精品免费 | 中国美女一级黄色片 | a及毛片| 欧美日韩在线观看精品 | 成人影院www在线观看 | 五月天堂婷婷 | 色偷偷亚洲第一成人综合网址 | 老司机日日摸夜夜摸精品影院 | 亚洲福利一区福利三区 | 香港一级a毛片在线播放 | 6080yy 久久 亚洲 日本不卡 | 91亚洲免费视频 | 日韩免费观看的一级毛片 | 91尤物国产尤物福利在线 | 国产三级大片 | 91麻豆视频网站 | 国产免费一区二区三区免费视频 | 青青草污 | 欧美性活一级视频 | 色亚洲视频 | 精品久久一区 | 成人美女黄网站视频大全 | 中文字幕久久久久久久系列 | 国产精品亚洲欧美一区麻豆 | 国产高清日韩 | 日本高清动作片www欧美 | 欧美xxxxx九色视频免费观看 | 国产精品ⅴ视频免费观看 | 国产精品成人va在线观看入口 | 99久久精品免费看国产情侣 | 国产精品99久久久久久宅男 | 99久久免费看精品国产一区 |