如何使用emit事件重新渲染vue js

时间:2017-09-20 03:06:43

标签: vue.js vuejs2

我有一个global.js,我向global.js发出一个事件。我想要实现的是每当我的global.js的值重新渲染vue时。

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,输出也不会改变

1 个答案:

答案 0 :(得分:2)

timestamp方法中设置的数据属性仅在Vue实例的初始化期间设置一次。

如果希望0000-00-00 00:00:00属性根据data值的当前状态进行更新,则应将其设为计算属性:

language