Vue.prototype 全局变量
2024-10-20 07:44:33
有两种都是在main.js声明
第一种
main.js 声明
Vue.config.productionTip = false // mount axios Vue.$http and this.$http
Vue.use(VueAxios) Vue.prototype.$a = 1 new Vue({
router,
...
在组件中使用a
console.log(this.$a)
这样定义有一个问题,很容易和组件定义的值冲突,所有一般我习惯在值前面加$
这个值不是全局变量,而是原型,不支持修改
Vue.prototype
不是全局变量,而是原型属性,去看看prototype
和原型链的知识就明白了。
参考《JavaScript高级程序设计》第6章 面向对象的程序设计
因为每一次跳转到新的Vue页面,都是一个独立的Vue实例,实例中this.$a
从Vue.prototype.$a
而来,所以仍然是1
第二种
有一种是在new Vue的时候声明,支持修改
new Vue({
...
data() {
return {
...,
a: 1
...
};
},
...
});
其他所有组件中通过$root.a
可访问和修改此变量。
第三种
把全局变量挂在Window下面,在main.js中:
window.a = 1;
组件A
console.log(a)//1
a = 2;
组件B
console.log(a)//2
这种不到万不得已的情况尽量不要用,会对全局造成污染,出现问题也不好定位
参考:https://segmentfault.com/q/1010000009992656
https://blog.csdn.net/pma934/article/details/86765722
最新文章
- ionic开发中的各种坑
- SAP中获取当前用户相关信息的两个函数
- 001.linux下clock()检测程序运行时间
- [Java] 匿名内部类
- lintcode :Longest Palindromic Substring 最长回文子串
- iOS开发常用国外网站清单
- linux之SQL语句简明教程---SELECT
- [SQL基础教程]1-4 SQL 表的创建
- Dos命令打印文件以及Dos打印到USB打印端口
- Android OpenGL ES 开发(二): OpenGL ES 环境搭建
- linux下连接windows的远程桌面
- javascript闭包以及闭包的作用
- Linux 下安装idea,提示svn版本太低问题
- [转]在ASP.NET Core中使用百度在线编辑器UEditor
- java二分法搜索
- How to recovery compiz
- 026、一张图搞懂docker(2019-01-21 周一)
- [算法]PHP随机合并数组并保持原排序
- MySQL服务器监控注意事项
- topcoder srm 520 div1