一个组件上的 v-model 默认会利用名为 valueprop 和名为 input 的事件

Vue.component('custom-input', {props: ['value'],template: `<inputv-bind:value="value"v-on:input="$emit('input', $event.target.value)">`
})
<custom-input v-model="searchInput"></custom-input>

但是像单选框、复选框等类型的输入控件可能会将 value 作为服务器提交时的内容,可以通过 mode 来指定其他属性

Vue.component('custom-checkbox', {model: {prop: 'checked',event: 'change'},props: {checked: Boolean},template: `<inputtype="checkbox"v-bind:checked="checked"v-on:change="$emit('change', $event.target.checked)">`
})
<custom-checkbox v-model="selectFramework"></custom-checkbox>

vue3

v-model prop 和事件默认名称已更改:

prop属性:value 变为-> modelValue;
event事件:input 变为-> update:modelValue;

在 3.x 中,自定义组件上的 v-model 相当于传递了 modelValue prop 属性并接收抛出的 update:modelValue 事件:

Vue.component('custom-input', {props: ['modelValue'],template: `<inputv-bind:value="modelValue"v-on:input="$emit('update:modelValue', $event.target.value)">`
})
<custom-input v-model="searchInput"></custom-input>

v-model参数新增

若需要更改 model 名称,而不是更改组件内的 model 选项,那么现在我们可以将一个参数传递给 model:

Vue.component('custom-checkbox', {props: {checked: Boolean},template: `<inputtype="checkbox"v-bind:checked="checked"v-on:change="$emit('update:checked', $event.target.checked)">`
})
<custom-checkbox v-model:checked="selectFramework"></custom-checkbox>

我们在上面的代码中可以看到 v-model 后面加上了冒号传递参数 :checked ,表示 v-model 绑定的是 checked 属性,在触发的事件通过 update:属性 指定,注意格式是固定的,必须 update: 加上属性名称。

sync修饰符删除

如果需要的话,父级可以监听该事件并更新本地 data property。例如:

<custom-checkbox :checked="selectFramework" @update:checked="selectFramework = $event"></custom-checkbox>

为了方便起见,我们可以使用 .sync 修饰符来缩写,如下所示:

<custom-checkbox :checked.sync="selectFramework"></custom-checkbox>

vue3 中 bind 的 .sync修饰符和组件的 model 选项已移除,统统都要使用 v-model 作为代替;

<custom-checkbox v-model:checked="selectFramework"></custom-checkbox>

而且允许我们在自定义组件上使用多个 v-model。

<ChildComponent v-model:title="pageTitle" v-model:content="pageContent" /><!-- 简写: --><ChildComponent:title="pageTitle"@update:title="pageTitle = $event":content="pageContent"@update:content="pageContent = $event"
/>

之前是自定义组件上只能使用一个,现在改为可以使用多个了。

在组件上使用 v-model相关推荐

  1. grep v grep_使用grep4j轻松测试分布式组件上的SLA

    grep v grep 因此,您的分布式体系结构如下图所示,您刚刚从企业那里收到了一项要求,以确保生产者发送并随后传输到下游系统(消费者)的消息的SLA必须快且永远不会慢于此. 400毫秒. 要求说: ...

  2. 关于ASP无组件上传在2003下出错

    关于ASP无组件上传在2003下出错.. 问题描述: asp无组件上传程序无法上传较大的文件"Request 对象 错误 ASP 0104 : 80004005",(大概大于100 ...

  3. 最快的ASP无组件上传类(4M只需10秒)0.96版

    <% '---------------------------------------------------------------------- '转发时请保留此声明信息,这段声明不并会影响 ...

  4. 在 Element-UI 的 Table 组件上添加列拖拽效果

    在 Element-UI 的 Table 组件上添加列拖拽效果 一.数据驱动 传统的拖动效果,都是基于通过 mousedown.mousemove.mouseup 事件来修改删减 dom 节点 但 V ...

  5. 6行代码实现ASP无组件上传

    目前有很多无组件上传类,我大概看了一下,大多写的相当复杂,有的居然还只能传文本,最关键的是没有10行代码以下的:),我花了一个晚上时间研究了一下ADODB.Stream,并且用了6行代码实现了无组件上 ...

  6. vue vuex 挂载_vue.js,javascript_Vuex的初始化失败,一直显示没有挂载到根组件上,奇怪了!,vue.js,javascript - phpStudy...

    Vuex的初始化失败,一直显示没有挂载到根组件上,奇怪了! 代码如下 import 'babel-polyfill' import Vue from 'vue' import VueRouter fr ...

  7. ASP实例:6行代码实现无组件上传

    ASP实例:6行代码实现无组件上传 目前有很多无组件上传类,我大概看了一下,大多写的相当复杂,有的居然还只能传文本 最关键的是没有10行代码以下的 :) 我花了一个晚上时间研究了一下ADODB.Str ...

  8. javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件

    大家好,欢迎来到雄雄的小课堂,今天给大家分享的是<javaWeb中,如何通过Commons-FileUpload组件上传文件> 前言:文件上传大家都不陌生,在这个互联网飞速发展的时代,共享 ...

  9. 使用grep4j轻松测试分布式组件上的SLA

    因此,您的分布式体系结构如下图所示,您刚刚从企业那里收到了一项要求,以确保生产者发送并随后传输到下游系统(消费者)的消息的SLA必须快且永远不会慢于此. 400毫秒. 要求说: 从生产者发送到任何消费 ...

最新文章

  1. Appian宣布将Google AI 集成到RPA中
  2. r语言kendall协和系数_数据挖掘|R相关性分析及检验
  3. System.Web.HttpException
  4. CFHD打的爽就继续下去,打的不爽就?
  5. Jupyter Notebook: 解决build docker-stacks时conda太慢的问题
  6. 在Cocos2d中实现能够惯性拖动的选择界面
  7. 加速你的Hibernate引擎(上)
  8. solr的一些查询语法
  9. 代码重构之道,重构即重生,让你的代码起死回生
  10. 第一章:NHibernate的简介
  11. laravel blade 标签与vue标签冲突
  12. mysql sql查询json数据类型_SQL中的JSON数据类型
  13. 分析日志下载时间脚本
  14. 史上最详细的JNI入门教程HelloNative
  15. Android 模块化编程之引用本地的aar
  16. win10系统的快捷键
  17. Google快捷键大全
  18. 2000坐标系与现行坐标系的关系及采用2000坐标系之后的一些变化
  19. 微信小程序之文本内的p标签去除
  20. android intent-filter作用,详解Android中Intent对象与Intent Filter过滤匹配过程

热门文章

  1. red linux oracle sqlplus 乱码,Oracle for Linux sqlplus 的乱码有关问题
  2. 前几天没事在某网站论坛潜水,看到一则帖子《求一首藏头诗》
  3. pdb unplug plug测试
  4. vs2008破解补丁和免安装版注册失败分析
  5. 前端聚光灯效果-(css-doodle)
  6. microsoft sqlserver 驱动
  7. RS485,RS232,MODBUS三者之间的关系
  8. java基于springboot+vue的小吃美食分享网站
  9. 为OpenWrt配置IPV6,享受下一代互联网
  10. 什么是OADM光分插复用器