搜索

首页  >  问答  >  正文

javascript - vue中一个组件如何更好地监听另一个组件的事件

父组件APP下面有A,B,C,D4个路由组件,这4个路由组件下面分别有A1,B1,C1,D1子组件,其中app下面还有一个E组件。A1,B1,C1,D1这些组件单击后要触发E组件里面的方法,并把相应的参数传递给E组件中的方法。现在我的方法是使用

this.$emit一层一层往上传递到父组件然后使用this.$refs 这样的方法激活E组件的方法和传递数据.
后来觉得这样麻烦就使用vuex, 把要传递的数据都放进store里面,但是不知道怎么使用vuex让E组件的方法在我点击后自动触发
習慣沉默習慣沉默2712 天前649

全部回复(1)我来回复

  • 学习ing

    学习ing2017-06-14 10:55:44

    可以在E组件computed store的值,然后watch这个值,然后根据store的值改变后触发watchhandler,如果需要每次点击相同组件都触发,需要每次点击都要改变一个值,computed应该是缓存的。
    更好的方法应该是写成vuex的一个action吧,然后在每个组件中导入这个action,就可以使用了。

    回复
    0
  • 取消回复