子组件修改父组件的值
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)
}