vue2 有状态的父组件如何修改子组件的props并触发更新

首先这里的父组件和子组件并不是强耦合关系,子组件会是三方库的组件,比如是ant-design-vueTable,父组件是我要写的,目的是能让使用者在无感知(不用写额外代码)的情况下实现父级修改子级的props

如果父组件是函数式组件的话,那么我可以通过修改vnodepropsData来实现目的,但是普通的有状态组件我就不会了

父组件:

<template>
  <div class="parent">
    <slot/>
  </div>
</template>

<script>
export default {
  name: 'Parent'
}
</script>

子组件:

<template>
  <div class="child">{{ text }}</div>
</template>

<script>
export default {
  name: 'Child',
  props: { text: String }
}
</script>

使用父组件时的代码(只要写这些,然后Parent就能在特定时机修改Childtext):

<template>
  <parent>
    <child/>
  </parent>
</template>

<script>
import Parent from './Parent'
import Child from './Child'

export default {
  components: { Parent, Child }
}
</script>
阅读 2.6k
1 个回答

给第三方组件绑定 v-bind="$attrs" 能满足你的需求吗?

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