2016-11-30 75 views
5

我有欲在實例因而全局傳遞給Vue的部件的JavaScript變量或者每個註冊的組件具有它作爲一個屬性,或者它可以全局訪問。應用全局變量來Vuejs

注::我需要爲只讀財產

回答

16

可以使用Global Mixin影響所有Vue的實例來設置這個全局變量vuejs。您可以將數據添加到該mixin中,爲所有vue組件提供值/值。

爲了使該值只讀,你可以使用this stackoveflow answer描述的方法。

下面是一個例子:

// This is a global mixin, it is applied to every vue instance 
 
Vue.mixin({ 
 
    data: function() { 
 
    return { 
 
     get globalReadOnlyProperty() { 
 
     return "Can't change me!"; 
 
     } 
 
    } 
 
    } 
 
}) 
 

 
Vue.component('child', { 
 
    template: "<div>In Child: {{globalReadOnlyProperty}}</div>" 
 
}); 
 

 
new Vue({ 
 
    el: '#app', 
 
    created: function() { 
 
    this.globalReadOnlyProperty = "This won't change it"; 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.3/vue.js"></script> 
 
<div id="app"> 
 
    In Root: {{globalReadOnlyProperty}} 
 
    <child></child> 
 
</div>

+0

謝謝!真的有用! –

14

只是Adding Instance Properties

例如,所有組件都可以訪問全球appName,你只寫一行代碼:

Vue.prototype.$appName = 'My App'

$並不神奇,它是可用的所有實例的屬性公約Vue公司使用。

當然,你可以writing a plugins,其中包括全球所有的方法或屬性。

+1

謝謝[Vue Cookbook](https://vuejs.org/v2/cookbook/index.html)鏈接。 –