Vue ---组件通信

79 阅读1分钟

子组件修改父组件的值

Vue.js遵循单向数据流的原则,即数据从父组件传递到子组件,子组件通过props接收这些数据,每次父级组件发生更新时,子组件中所有的props都将会刷新为最新的值,并且不能直接修改这些props。这是为了确保数据的可追踪性和可维护性。

通过事件机制实现子组件影响父组件的数据,修改Demo:

  • Vue3中使用v-model形式代替sync,可以进行子组件修改父组件值
// 父组件
<template>
  <Children v-model:count = "count" />
</template>
const count = ref<number>(0)

// 子组件
<template>
  <button @click = "addCount" ></button>
</template>

const props = defineProps({
 count:{type:Number,required:true}
})
const emit = defineEmits(['update:count'])
const addCount:() => void =() => {
 emit('update:count',props.count + 1)
}