Vous pouvez utiliser un Global Mixin pour affecter chaque instance de Vue. Vous pouvez ajouter des données à ce mixin, rendant une/des valeur(s) disponible(s) à tous les composants Vue.
Pour que cette valeur soit en lecture seule, vous pouvez utiliser la méthode décrite dans la rubrique cette réponse de Stack Overflow .
Voici un exemple :
// This is a global mixin, it is applied to every vue instance.
// Mixins must be instantiated *before* your call to new Vue(...)
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 votes
Pour VUE-3 voir les réponses ci-dessous.