javascript - vue 寫一個組件和寫一個插件有什么區別?
問題描述
現在想寫一個分頁的東西,但是拿不定是寫成一個.vue單文件好還是用install寫成一個插件好,不太清楚2者之間的區別,感覺.vue就能解決需求,但是為什么要有install這個方式呢,另外有一個關于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>//這個是install寫插件 let paging = { install: function(Vue, options) {Vue.component(’pagination’,pagination); } }
我install里面的options配置參數如何傳遞到pagetion的模版里面去呢?
問題解答
回答1:Vue 的組件是模板和 UI 邏輯的結合。
如果分頁邏輯在許多組件之間需要復用,那么最好的方式顯然是通過插件復用 Vue 文件的 JS 邏輯。
如果分頁邏輯只在一個組件中用到,那么使用插件和 mixins 會降低單個 Vue 組件的可讀性。
回答2:一個Vue插件可以是一堆Vue組件的集合(插件干的事就是把內部的組件幫你倒入到vue全局下),也可以是用來擴展Vue功能的,比如 Vuex, Vue-Router。你也可以寫一個插件,在Vue原型上擴展方法,要實現這個需求絕對沒法寫成組件。
let whatever = { install: function(Vue, options) {Vue.prototype.$whatever = function(){ // do something }; } } // 你這個用組件咋搞?
另外,你為啥要在install插件的時候決定插件倒入的組件的數據呢?那不是應該你在用這個組件的時候通過props來控制么?
相關文章:
1. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!2. css - input元素的time控件無法選擇3. javascript - 這里的這個函數是干嘛用的?4. python - pyspider的分布式運行成功,2臺slave跑,但是時間并沒有縮短問題?5. css3 隱藏文本6. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題7. java如何高效讀寫10G以上大文件8. dockerfile - [docker build image失敗- npm install]9. javascript - CSS圖片輪播顯示問題10. javascript - vue-router怎么不能實現跳轉呢
