javascript - vue 寫一個(gè)組件和寫一個(gè)插件有什么區(qū)別?
問題描述
現(xiàn)在想寫一個(gè)分頁的東西,但是拿不定是寫成一個(gè).vue單文件好還是用install寫成一個(gè)插件好,不太清楚2者之間的區(qū)別,感覺.vue就能解決需求,但是為什么要有install這個(gè)方式呢,另外有一個(gè)關(guān)于install寫插件的問題
//pagetion的模版 <template> <p class='paging'><p name='pagingPage'> <li> <span class='paging-first'></span> </li> <li v-for='item in numArr'> <span class='paging-next'>{{item}}</span> </li> <li> <span class='paging-last'></span> </li></p> </p> </template>//這個(gè)是install寫插件 let paging = { install: function(Vue, options) {Vue.component(’pagination’,pagination); } }
我install里面的options配置參數(shù)如何傳遞到pagetion的模版里面去呢?
問題解答
回答1:Vue 的組件是模板和 UI 邏輯的結(jié)合。
如果分頁邏輯在許多組件之間需要復(fù)用,那么最好的方式顯然是通過插件復(fù)用 Vue 文件的 JS 邏輯。
如果分頁邏輯只在一個(gè)組件中用到,那么使用插件和 mixins 會(huì)降低單個(gè) Vue 組件的可讀性。
回答2:一個(gè)Vue插件可以是一堆Vue組件的集合(插件干的事就是把內(nèi)部的組件幫你倒入到vue全局下),也可以是用來擴(kuò)展Vue功能的,比如 Vuex, Vue-Router。你也可以寫一個(gè)插件,在Vue原型上擴(kuò)展方法,要實(shí)現(xiàn)這個(gè)需求絕對(duì)沒法寫成組件。
let whatever = { install: function(Vue, options) {Vue.prototype.$whatever = function(){ // do something }; } } // 你這個(gè)用組件咋搞?
另外,你為啥要在install插件的時(shí)候決定插件倒入的組件的數(shù)據(jù)呢?那不是應(yīng)該你在用這個(gè)組件的時(shí)候通過props來控制么?
相關(guān)文章:
1. nignx - docker內(nèi)nginx 80端口被占用2. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?3. docker api 開發(fā)的端口怎么獲取?4. 關(guān)于docker下的nginx壓力測(cè)試5. dockerfile - [docker build image失敗- npm install]6. golang - 用IDE看docker源碼時(shí)的小問題7. jpa mysql 如何id自增初始值?8. html - flask后臺(tái)傳一個(gè)null到前端9. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下10. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?
