2017-09-20 15 views
0

私はglobal.jsを持っています。私はglobal.jsにイベントを出しています。私のglobal.jsの値がvueを再描画するときはいつでも達成したいです。emitイベントを使ってvue jsを再レンダリングする方法

global.js

export let globalStore = new Vue({ 
    data: { 
    translateBool: 0, 
    about: [`About Us`,`フィリピンのマニラに 2015年9月に設立。`] 
    }, 
    methods: { 
    changeLanguage(){ 
     if(this.translateBool == 0){ 
      this.translateBool= 1 
     }else{ 
      this.translateBool= 0 
     } 
    } 
    } 
}) 

    globalStore.$on('changeLanguage',globalStore.changeLanguage) 

click.vue

import { globalStore } from '../../global.js'; 

    export default{ 
     name: "sample", 
     data(){ 
      return{ 
      language: globalStore.translate 
     } 
     }, 
     methods : { 
      changeLanguage(){ 
      globalStore.$emit('changeLanguage') 
      }, 
      } 
     } 
    } 
</script> 

{{language}} 

translateBool = 1であっても、出力に設定

答えて

2

データプロパティを変更しませんdataメソッドは、Vueインスタンスの間に1回だけ設定されます初期化。

あなたはlanguageプロパティがglobalStore.language値の現在の状態に基づいて更新する場合、あなたはそれを計算されたプロパティにする必要があります。

export default { 
    name: "sample", 
    computed: { 
    language() { 
     return globalStore.translate 
    } 
    }, 
    methods: { 
    changeLanguage() { 
     globalStore.$emit('changeLanguage') 
    } 
    } 
} 
関連する問題