vue實(shí)現(xiàn)定義一個(gè)全局實(shí)例Vue.prototype
vue定義一個(gè)全局實(shí)例Vue.prototype
定義與使用
定義:
Vue.prototype.$appName = 'My App'
使用:
this.$appName (任何地方)
使用場景:
你可能會(huì)在很多組件里用到數(shù)據(jù)/實(shí)用工具,但是不想污染全局作用域。
這種情況下,你可以通過在原型上定義它們使其在每個(gè) Vue 的實(shí)例中可用
Vue.prototype.$appName = 'My App'
這樣 $appName
就在所有的 Vue 實(shí)例中可用了,甚至在實(shí)例被創(chuàng)建之前就可以。
如果我們運(yùn)行:
new Vue({ beforeCreate: function () { console.log(this.$appName) } })
則控制臺(tái)會(huì)打印出 My App。就這么簡單!
為什么appName要以$開頭?這很重要嗎?它會(huì)怎樣?
$ 是在 Vue 所有實(shí)例中都可用的 property 的一個(gè)簡單約定。
這樣做會(huì)避免和已被定義的數(shù)據(jù)、方法、計(jì)算屬性產(chǎn)生沖突。
vue定義全局方法的三種實(shí)現(xiàn)
方法一:使用Vue.prototype
//在mian.js中寫入函數(shù) Vue.prototype.getToken = function (){ ? ... } //在所有組件里可調(diào)用函數(shù) this.getToken();
方法二:使用exports.install+Vue.prototype
// 寫好自己需要的fun.js文件 exports.install = function (Vue, options) { ? ? Vue.prototype.getToken = function (){ ? ? ? ?... ? ? }; }; // main.js 引入并使用 import fun from './fun' Vue.use(fun); //在所有組件里可調(diào)用函數(shù) this.getToken();
在用了exports.install方法時(shí),運(yùn)行報(bào)錯(cuò)exports is not defined
解決方法:
export default { ? ? install(Vue) ?{ ? ? ? ? Vue.prototype.getToken = { ? ? ? ? ? ?... ? ? ? ? } ? ? } }
方法三:使用全局變量模塊文件
Global.vue文件:
<script> ? ? const token='12345678'; ? ? export default { ? ? ? ? methods: { ? ? ? ? ? ? getToken(){ ? ? ? ? ? ? ? ? .... ? ? ? ? ? ? } ? ? ? ? } ? ? } </script>
在需要的地方引用進(jìn)全局變量模塊文件,然后通過文件里面的變量名字獲取全局變量參數(shù)值。
<script> import global from '../../components/Global'//引用模塊進(jìn)來 export default { ? ? data () { ? ? ? ? return { ? ? ? ? ? ? token:global.token ? ? ? ? } ? ? }, ? ? created: function() { ? ? ? ? global.getToken(); ? ? } } </script>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue?大文件分片上傳(斷點(diǎn)續(xù)傳、并發(fā)上傳、秒傳)
本文主要介紹了vue?大文件分片上傳,主要包括斷點(diǎn)續(xù)傳、并發(fā)上傳、秒傳,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07vue2.x版本中computed和watch的使用及關(guān)聯(lián)和區(qū)別
這篇文章主要介紹了vue2.x版本中computed和watch的使用及關(guān)聯(lián)和區(qū)別,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下2022-07-07Vue設(shè)計(jì)器form-create-designer配置表單默認(rèn)值示例詳解
這篇文章主要介紹了如何使用開源項(xiàng)目form-create-designer來靈活調(diào)整表單的默認(rèn)值,通過config.formOptions,您可以自定義表單的全局布局,文章提供了一個(gè)詳細(xì)的例子,展示了如何使用form-create-designer的配置選項(xiàng)來調(diào)整表單的布局和外觀,感興趣的朋友一起看看吧2024-11-11VUE之關(guān)于store狀態(tài)管理核心解析
這篇文章主要介紹了VUE之關(guān)于store狀態(tài)管理核心解析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06vue插件開發(fā)之使用pdf.js實(shí)現(xiàn)手機(jī)端在線預(yù)覽pdf文檔的方法
這篇文章主要介紹了vue插件開發(fā)之使用pdf.js實(shí)現(xiàn)手機(jī)端在線預(yù)覽pdf文檔的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07