Vue 父组件如何异步更新子组件状态

例如我有一组list组件,有一个active属性控制其class
每点击list一个item更新active属性
父组件接受其@item-click-selected事件,事件为一个异步事件
现在想要父组件的异步事件完成之后,才更新active属性

// 父组件接收@item-click-selected
itemClickSelected () {
      setTimeout(() => {
           console.log('updated')
      }, 300)
    }
// 子组件
item-click-event () {
    this.active = true
}
阅读 7.5k
5 个回答

通过props

新手上路,请多包涵

父组件通过 props 改变子组件的 active
才符合 单向数据流的思想。

父组件传值给子组件用props,子组件反馈给父组件用$emit:

每个 Vue 实例都实现了事件接口,即:
父组件使用 $on(eventName) 监听事件
子组件使用 $emit(eventName) 触发事件

vuex来解决,调用dispatch钩子,他是和后端API交互,子组件直接拿修改之后vuex的相关模块的数据即可,解藕父子组件的依赖

今天是父组件操作这个数据,明天或许是你的平级组件操作这个数据,vuex适合这个场景,绝对是解药?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题