Vue.js 外掛開發

發表於2017-05-17

Vue.js 外掛是為應用新增全域性功能的一種強大而且簡單的方式。外掛的用途很廣泛,從全域性元件,到為應用新增一些額外的功能、如路由(Vue Router),儲存在應用程式裡的不可變資料(Vuex)。

一般來說,Vue外掛的開發是非常簡單的。Vue外掛僅僅是包含一個公開方法install的物件、這個方法有兩個引數:Vue 構造器和一個可選的選項物件。儘管,外掛系統看起來十分簡單,但其仍然可以產生相當大的作用。

你的第一個外掛

為了開啟vue外掛開發的大門,下面我們將先實現一個最簡單的外掛。這個外掛的功能是:當元件被掛載到DOM後,控制檯輸出Mounted!

現在,你的外掛便可以使用了。你可以通過匯入並用Vue.use來顯式呼叫你的外掛:Vue.use(MyPlugin)

你可能會奇怪,為什麼我不能直接在main.js中呼叫Vue.mixin()來實現這一點呢?其原因就是:我們向Vue新增全域性功能,而沒有直接修改應用邏輯。拆分模組這種做法總是極好的,你可以隨時新增或移除一個單獨的模組。同時,這也使得外掛非常容易分發。

新增一些其他的功能

安裝應用範圍的元件和指令

如果你想把元件或指令打包為一個外掛來進行分發,可以這樣寫:

修改Vue構造器

你可以在外掛中以你期待的方式來修改Vue構造器(全域性Vue物件)。下面的程式碼在Vue構造器中新增了一個屬性myAddedProperty和一個方法myAddedMethod

修改Vue例項

不需要任何注入機制便可以將屬性或方法直接新增到元件例項,你可以這樣來修改Vue構造器的prototype

這些屬性將會被加到所有的元件和Vue例項中。

社群裡公認的做法是:新增在Vue prototype裡的任何屬性都要以美元符$作為其字首

新增元件的生命週期鉤子或屬性

如上文中“你的第一個外掛”示例所示,你可以通過Mixin新增生命週期鉤子對Vue元件進行修改。

Mixin是一個相當重要的話題,但不在本文的討論範圍之內。目前,可以肯定的是,Mixin是一種靈活的分散式複用 Vue 元件的方式,Mixin可以包含任意元件選項並可以混合進其他元件之中。

自動安裝外掛

對於那些沒有在應用中使用模組化系統的使用者,他們往往將通過<script>標籤引用你的外掛,並期待外掛無需呼叫Vue.use()便會自動安裝 。你可以在外掛最後新增如下幾行程式碼來實現自動安裝:

釋出你的外掛

如果你已經寫了一個外掛,並準備將其分享到社群,下面是一些常用的幫助別人發現你的外掛的方法,如果你還不熟悉這些流程的話。

趕快去開發一些外掛吧!

相關文章