vue父组件连续传两次值,子组件只接收到一次

新手上路,请多包涵

父组件P从子组件A获取值(对象),再传给子组件B,父组件间隔时间很短地获取到了2次子组件A传的值,子组件B却只获取到了一次

//父组件P
<CheckList :query-data="queryData"></CheckList>

methods: {
    dealQueryData: function (data) {
      console.log(data);
      //打印两次,一次是{reset: true},一次是{}
      this.queryData = data;
    }
}
//子组件B
queryData: {
  handler (newVal, oldVal) {
    console.log(newVal);
    //只打印一次,是{}
    this.getList(newVal);
  },
  deep: true,
  immediate: true
}

哪位大佬可以解释一下是什么原因&解决办法吗?

阅读 4.4k
2 个回答
  1. 需要动作用函数,不要用赋值
  2. Vue 会缓存数据变化,因为只渲染一次,所以中间状态是没有意义的

会不会是第一次父组件P的数据第一次变化时子组件B还没创建呢?

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