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. spring-mvc - spring-session-redis HttpSessionListener失效2. python文檔怎么查看?3. android - NavigationView 的側滑菜單中如何保存新增項(通過程序添加)4. 提示語法錯誤語法錯誤: unexpected ’abstract’ (T_ABSTRACT)5. mysql - 怎么生成這個sql表?6. tp5 不同控制器中的變量調用問題7. 除了 python2 和 python3,ipython notebook 還可以用哪些內核?8. javascript - vue 元素加樣式該怎么做9. java - 怎么處理前臺要展示,但是數據庫表沒有該字段的實體類冗余屬性呢?10. javascript - ios返回不執行js怎么解決?
