vue实现定义一个全局实例Vue.prototype
vue定义一个全局实例Vue.prototype
定义与使用
定义:
Vue.prototype.$appName = 'My App'
使用:
this.$appName (任何地方)
使用场景:
你可能会在很多组件里用到数据/实用工具,但是不想污染全局作用域。
这种情况下,你可以通过在原型上定义它们使其在每个 Vue 的实例中可用
Vue.prototype.$appName = 'My App'
这样 $appName
就在所有的 Vue 实例中可用了,甚至在实例被创建之前就可以。
如果我们运行:
new Vue({ beforeCreate: function () { console.log(this.$appName) } })
则控制台会打印出 My App。就这么简单!
为什么appName要以$开头?这很重要吗?它会怎样?
$ 是在 Vue 所有实例中都可用的 property 的一个简单约定。
这样做会避免和已被定义的数据、方法、计算属性产生冲突。
vue定义全局方法的三种实现
方法一:使用Vue.prototype
//在mian.js中写入函数 Vue.prototype.getToken = function (){ ... } //在所有组件里可调用函数 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); //在所有组件里可调用函数 this.getToken();
在用了exports.install方法时,运行报错exports is not defined
解决方法:
export default { install(Vue) { Vue.prototype.getToken = { ... } } }
方法三:使用全局变量模块文件
Global.vue文件:
<script> const token='12345678'; export default { methods: { getToken(){ .... } } } </script>
在需要的地方引用进全局变量模块文件,然后通过文件里面的变量名字获取全局变量参数值。
<script> import global from '../../components/Global'//引用模块进来 export default { data () { return { token:global.token } }, created: function() { global.getToken(); } } </script>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
vue3+js+elementPlus使用富文本编辑器@vueup/vue-quill详细教程
富文本编辑器在任何项目中都会用到,下面这篇文章主要给大家介绍了关于vue3+js+elementPlus使用富文本编辑器@vueup/vue-quill的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下2024-07-07vue excel上传预览和table内容下载到excel文件中
这篇文章主要介绍了vue excel上传预览和table内容下载到excel文件中,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-12-12Vue结合ElementUI实现数据请求和页面跳转功能(最新推荐)
我们在Proflie.vue实例中,有beforeRouteEnter、beforeRouteLeave两个函数分别是进入路由之前和离开路由之后,我们可以在这两个函数之内进行数据的请求,下面给大家分享Vue结合ElementUI实现数据请求和页面跳转功能,感兴趣的朋友一起看看吧2024-05-05
最新评论