0


vue3中的组件传值的方式

  1. props
    父组件使用 props 传递数据给子组件:
<!-- parent.vue -->
<child :msg="message"></child>

<!-- child.vue -->
<p>{{ msg }}</p>
// parent.vue
data() {
  return {
    message: 'Hello!'
  }
}

子组件使用 props 接收:

// child.vue 
props: ['msg']
  1. emit 自定义事件
    子组件触发事件,父组件监听该事件并更新数据:
<!-- parent.vue -->
<child @update="updateMessage"></child>

<!-- child.vue --> 
<button @click="emitUpdate">Update</button>

<p>{{ msg }}</p> 
// parent.vue
methods: {
  updateMessage(newMsg) {
    this.message = newMsg
  }
}
// child.vue
methods: {
  emitUpdate() { 
    this.$emit('update', 'Updated message!')
  }
}
  1. refs
    通过 ref 给子组件绑定引用,然后通过该引用直接更新子组件的数据或调用子组件的方法:
<!-- parent.vue -->
<child ref="child"></child>

<button @click="updateChildMessage">Update Child Message</button>
// parent.vue 
methods: {
  updateChildMessage() {
    this.$refs.child.msg = 'New message'
  }  
}

在 child 组件中:

export default {
  data() {
    return {
      msg: 'Initial message'
    }
  }
}
  1. provide / inject
    父组件提供数据,子组件注入并使用:
// parent.vue
provide: {
  name: 'Parent'
}

子组件:

// child.vue
inject: ['name']

console.log(name) // Prints "Parent"

最后总结一下:Vue 3 中组件传值主要的方式有:

  1. props - 父传子
  2. emit - 子传父
  3. refs - 父访问子
  4. provide/inject - 祖先传后代

这些方式可以组合使用,实现非常灵活的组件通信。


本文转载自: https://blog.csdn.net/qwe0415/article/details/130369049
版权归原作者 下班别坐805 所有, 如有侵权,请联系我们删除。

“vue3中的组件传值的方式”的评论:

还没有评论