我们知道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>
当 <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>
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有