寫在最后
親愛的讀者,到這里本小冊(cè)就要結(jié)束了圆裕,你是否從中學(xué)習(xí)到了屬于你的知識(shí)呢陋桂?我們來回顧一下小冊(cè)的內(nèi)容吧逆趣。
Vue.js 在開發(fā)獨(dú)立組件時(shí),由于它的特殊性嗜历,無法使用 Vuex宣渗、Bus 這樣的第三方插件來做組件通信,因此小冊(cè)提到了 3 種組件間的通信方法梨州,都是支持跨多級(jí)的:
- provide / inject:由父組件通過
provide
向下提供一個(gè)數(shù)據(jù)痕囱,子組件在需要時(shí),通過inject
注入這個(gè)依賴暴匠,就可以直接訪問父級(jí)的數(shù)據(jù)了鞍恢。 - dispatch / broadcast:組件向上派發(fā)或向下廣播一個(gè)自定義事件,組件通過
$on
來監(jiān)聽每窖。 - findComponents 系列:共包含 5 個(gè)方法帮掉,通過組件的
name
選項(xiàng),遍歷找到對(duì)應(yīng)的實(shí)例窒典,這是組件通信的終極方案蟆炊,適用于所有場(chǎng)景。
本冊(cè)總共講解了 7 個(gè)組件的實(shí)例:
- 具有數(shù)據(jù)校驗(yàn)功能的 Form 組件瀑志,它用到了第 1 種組件通信涩搓;
- 組合多選框 Checkbox 組件,它用到了第 2 種和第 3 種組件通信劈猪;
- Display 組件昧甘,它利用 Vue.js 的構(gòu)造器 extend 和手動(dòng)掛載 $mount API;
- 全局通知 mount API,與傳統(tǒng)組件不同的是将饺,它基于 Vue.js 組件開發(fā)贡避,但卻是以 JavaScript 的形式調(diào)用的痛黎,并且組件會(huì)在 body 節(jié)點(diǎn)下渲染;
- 表格組件 Table刮吧,典型的數(shù)據(jù)驅(qū)動(dòng)型組件湖饱,使用了函數(shù)式組件(Functional Render)來自定義列模板;
- 表格組件 Table杀捻,與上例不同的是井厌,它的自定義列模板使用了
slot-scope
; - 樹形控件 Tree致讥,典型的數(shù)據(jù)驅(qū)動(dòng)型組件仅仆,也是典型的遞歸組件,其中利用 computed 做父子節(jié)點(diǎn)聯(lián)動(dòng)是精髓垢袱。
最后的拓展部分墓拜,對(duì) Vue.js 組件的常見 API 做了詳細(xì)介紹,以及常見的 Vue.js 面試題分析和對(duì)開源的一些見解请契。
Vue.js 組件開發(fā)咳榜,歸根到底拼的是 JavaScript 的功底,Vue.js 在其中只是決定了開發(fā)模式爽锥,所以涌韩,打好 JavaScript 基礎(chǔ)才是最重要的。
最后氯夷,祝愿親愛的讀者能在編程的道路上越走越遠(yuǎn)臣樱。
另外,如果您有關(guān)于 Vue.js 或其它前端相關(guān)的問題肠槽,可以通過 iView 社區(qū) 付費(fèi)向筆者提問擎淤,希望能對(duì)一部分人有所幫助。