vue 使用computed拦截v-model

# vue 使用computed拦截v-model 1. 子组件必须接受一个 value 属性作为 prop,并在需要的地方使用它来获取父组件传递过来的值。 2. 子组件中通过监听输入事件(如按钮点击、选择变化等)来改变内部的值,并使用 $emit('input', newValue) 来触发 v-model 绑定的更新。 下面是一个示例: 父组件: ```javascript <template> <categoryFilter v-model="categoryType" /> </template> <script> export default { data() { return { categoryType: '' } } } </script> ``` 子组件: ```javascript <template> <v-btn-toggle v-model="internalValue" ...> ... </v-btn-toggle> </template> <script> export default { props: { value: { type: String, required: true } }, computed: { // 关键在这,利用计算属性的get set 进行拦截 internalValue: { get() { return this.value; }, set(newValue) { this.$emit('input', newValue); } } } } </script> ```