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