萌新求助各位大佬们;
我用Vue在main.js中创建
Vue.prototype.a = 1; 这个全局的变量后;
在组件a中使用
console.log(this.a); // => 1
this.a = 2;
然后从a跳到b后;
console.log(this.a);
还是1,不是2,为什么? 怎么修改这种全局的变量啊?还是说用其他的方法设置和修改全局的变量或对象?
萌新求助各位大佬们;
我用Vue在main.js中创建
Vue.prototype.a = 1; 这个全局的变量后;
在组件a中使用
console.log(this.a); // => 1
this.a = 2;
然后从a跳到b后;
console.log(this.a);
还是1,不是2,为什么? 怎么修改这种全局的变量啊?还是说用其他的方法设置和修改全局的变量或对象?
所以说基础知识很重要……
Vue.prototype
不是全局变量,而是原型属性,去看看prototype
和原型链的知识就明白了。
参考《JavaScript高级程序设计》第6章 面向对象的程序设计
把全局变量挂在Window下面,在main.js中:
window.a = 1;
组件A
console.log(a)//1
a = 2;
组件B
console.log(a)//2
9 回答1.7k 阅读✓ 已解决
6 回答1.5k 阅读
3 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
3 回答1k 阅读
3 回答1.3k 阅读✓ 已解决
这个不是全局变量,而是原型。
因为每一次跳转到新的Vue页面,都是一个独立的Vue实例,实例中
this.a
从Vue.prototype.a
而来,所以仍然是1。如果需要设置全局变量,在
main.js
中,Vue实例化的代码里添加其他所有组件中通过
$root.a
可访问此变量。