自定义组件的 v-model

一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框、复选框等类型的输入控件可能会将 value attribute 用于不同的目的。

model 选项可以用来避免这样的冲突:

复制代码
// 子组件
<template>
  <input type="checkbox" v-bind:checked="checked" v-on:change="$emit('change', $event.target.checked)">
</template>

<script>
  export default {
    name:'base-checkbox',
    props: {
      checked: Boolean
    },
 // 这个model选项就是用来改变默认的v-mode的绑定属性和抛出事件的
    model: {
      prop: 'checked',
      event: 'change' 
    }
  }
</script>
复制代码

 在这个组件上使用 v-model 的时候:

// 父组件
<base-checkbox v-model="lovingVue"></base-checkbox>

这里的 lovingVue 的值将会传入这个名为 checked 的 prop。同时当 <base-checkbox> 触发一个 change 事件并附带一个新的值的时候,这个 lovingVue 的 property 将会被更新。

1、v-model默认语法糖等同于 :value="price" @input="price=$event.target.value" 一般用于input等组件;

2、此处由于是checkbox,使用默认的就不合适了,所以数值绑定checked事件绑定change;

 

posted @   小阿飞ZJF  阅读(60)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示