懒惰等于将一个人活埋。——泰勒
我们知道v-model
可以用于input
等标签,当做语法糖进行绑值
对于我们自定义的组件,其实也可以使用
官方文档
例如此处我们可以让input
改变值时,父组件绑定的值一并改变
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <template> <input type="checkbox" :checked="value" @change="$emit('input', $event.target.checked)" /> </template> <script> export default{ props:{ value:{ type:Boolean, default:()=>false } } } </script>
|
父组件
1
| <base-checkbox v-model="lovingVue"></base-checkbox>
|
当 <base-checkbox>
触发一个 change
事件并附带一个新的值的时候,这个 lovingVue
的 property 将会被更新
我们还可以使用model
给这这个v-model
绑定的prop
和事件取别名:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <template> <input type="checkbox" :checked="checked" @change="$emit('change', $event.target.checked)" /> </template> <script> export default{ model: { prop: 'checked', event: 'change' }, props:{ value:{ checked: Boolean, default:()=> false } } } </script>
|
此处用v-bind:value
一样的效果
1
| <base-checkbox :value="lovingVue"></base-checkbox>
|