Vue中建立全局引用或者全局命令的方法
如何在Vue中建立全局引用或者全局命令,具體內容如下
1 一般在vue中,有很多vue組件,這些組件每個都是一個文件。都可能需要引用到相同模塊(或者插件)。我們不想每個文件都import 一次模塊。
如果是基于vue.js編寫的插件我們可以用 Vue.use(...)
main.js
2 但是如果想添加一個全局命令,同時又讓每個vue的文件都能用到怎么辦?
第一步:最好建立一個全局的命令文件例如:directive/directive.js
第二步:利用Vue.directive()建立一個全局命令,并將它暴露出來,例如一個focus 讓表單自動聚焦
directive.js
第三部步:在main.js(入口JS文件)中將它引入,可以省略文件后綴
main.js
這樣任何一個Vue文件只要這樣v-focus(命令名),就可以很方便的用到了
3 Vue.directive() 的命令一般都是自動運行的或者說初始化等等觸發(fā)的,并不能用于異步事件,怎么辦?
于是我們可以用到'mixins'混合命令,你最好建立一個專門的文件夾用于存放混合命令,例如:
mixins.js
比如saveScrollPosition (不是vue中的saveScrollPosition)可以每次在路由跳轉之間保存住瀏覽位置信息
注意:vue2.0 中 路由跳轉之間會自動保存位置信息 但是有Bug(位置信息之間會相互干擾)。
所以我們從新寫一個saveScrollPosition暴露出去后,在你需要的頁面中混入
這樣就會很方便。
4 如果你需要應用一個插件,同時他并不是基于vue.js的插件命令編寫的,那你可以將它賦予Vue的原型上
例如:我想全局引用axios,我們可以這樣
main.js
然后this.$http.get(url) 等等
xxx.vue
5 將需要的變量掛在到window對象上
例如:第三方庫Lodash.js,moment.js等等
main.js
xxx.vue
注意:這種方式不適合服務端渲染,服務端并沒有window對象
強調一點:以上所有的引入都必須通過入口JS文件去引入,這樣才能適用于全局
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
vue2.0與bootstrap3實現(xiàn)列表分頁效果
這篇文章主要為大家詳細介紹了vue2.0與bootstrap3實現(xiàn)列表分頁效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11解決vue3項目打包發(fā)布到服務器后訪問頁面顯示空白問題
這篇文章主要介紹了解決vue3項目打包發(fā)布到服務器后訪問頁面顯示空白問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03vue使用css-rcurlyexpected等less報錯問題
這篇文章主要介紹了vue使用css-rcurlyexpected等less報錯問題,具有很的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10vue2滾動條加載更多數(shù)據(jù)實現(xiàn)代碼
本篇文章主要介紹了vue2滾動條加載更多數(shù)據(jù)實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01