前端開發(fā)中,我們經(jīng)常需要定義一些全局變量,它們可以在不同的組件或頁面中使用。Vue.js 提供了一種非常方便的方式來定義全局變量——使用全局變量var。
Vue.prototype.$var = 'global variable';
在上面的代碼中,我們將一個全局變量 var 定義在 Vue.prototype 上。這樣以后,在任何的 Vue 組件中,我們都可以通過 this.$var 訪問這個全局變量。
我們可以通過另一個例子來更深入地理解這個方法。比如,我想要定義一個全局的 API 地址,這個地址會在開發(fā)過程中不斷地修改,我們不希望每次都去修改組件中的代碼,而是直接修改全局變量。
// 開發(fā)環(huán)境
Vue.prototype.$api = 'http://localhost:3000';
// 生產(chǎn)環(huán)境
Vue.prototype.$api = 'http://api.xxx.com';
如上所示,我們定義了一個全局變量 $api,根據(jù)不同的環(huán)境,它的值會有所不同。當我們在組件中需要使用這個 API 地址時,只需要調(diào)用 this.$api 即可。
對于全局變量的定義,我們還可以利用 ES6 的語法進行更加規(guī)范的編寫。
const globalData = {
$api: 'http://localhost:3000',
$user: {
name: 'Johnny',
age: 18
}
};
Object.keys(globalData).forEach(key =>{
Vue.prototype[key] = globalData[key];
});
在上面的代碼中,我們使用了 ES6 的 const 定義了一個全局變量 globalData。利用 Object.keys 對這個對象進行循環(huán),把所有的屬性掛載到 Vue.prototype 上。這樣我們就可以在 Vue 的任何組件中調(diào)用這些全局變量,如 this.$api、this.$user.name 等。
以上是 Vue.js 如何定義全局變量的方法,通過這種方式,我們能夠更加方便地在組件、頁面中調(diào)用全局變量,減少了代碼的重復(fù)和冗余。