有兩種都是在main.js聲明
第一種
main.js 聲明
1 2 3 4 5 6 7 8 9 10 |
|
在組件中使用a
1 |
|
這樣定義有一個問題,很容易和組件定義的值沖突,所有一般我習慣在值前面加$
這個值不是全局變量,而是原型,不支持修改
Vue.prototype
不是全局變量,而是原型屬性,去看看prototype
和原型鏈的知識就明白了。
參考《JavaScript高級程序設計》第6章 面向對象的程序設計
因為每一次跳轉到新的Vue頁面,都是一個獨立的Vue實例,實例中this.$a
從Vue.prototype.$a
而來,所以仍然是1
第二種
有一種是在new Vue的時候聲明,支持修改
1 2 3 4 5 6 7 8 9 10 11 |
|
其他所有組件中通過$root.a
可訪問和修改此變量。
第三種
把全局變量掛在Window下面,在main.js中:
1 |
|
組件A
1 2 |
|
組件B
1 |
|
這種不到萬不得已的情況盡量不要用,會對全局造成污染,出現問題也不好定位