官方文档

https://cn.vuejs.org/v2/guide/components-custom-events.html?#自定义组件的-v-model

解决方案

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

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

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

<base-checkbox v-model="lovingVue"></base-checkbox>

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

注意你仍然需要在组件的 props 选项里声明 checked 这个 prop。

默认状态下是model:{prop:’value’,event:’change’} 

业务逻辑

  1. 当有数据输入时触发了该组件的input事件
  2. 手动触发父组件的input事件并将值传给父组件
  3. 父组件的input事件被触发,将传来的值赋给父组件的变量value,实现输入框value到父元素的value的单向绑定
  4. 父组件value的值绑定到value
  5. 将父组件的value值通过props传递给子组件,实现了父组件的value到子组件value的单向绑定

参考文章

https://blog.csdn.net/orq18810575870/article/details/82027514

https://www.cnblogs.com/wind-lanyan/p/7899428.html

https://www.cnblogs.com/eret9616/p/11311264.html

Vue——自定义组件的 v-model相关推荐

  1. Vue如何自定义组件?超详细Vue自定义组件指南!使用自定义组件减少重复造轮子! ∠( °ω°)/ 前端知识

    文章目录 使用意义 基础使用 给组件添加属性 传递事件 自定义组件的v-model 剖析v-model原理 使用示例 插槽 使用意义 有时候一组HTML代码可能会在多出使用(比如页眉页脚).如果我们把 ...

  2. vue 自定义组件双向数据绑定

    文章目录 序 属性&事件传值双向绑定 v-model组件双向绑定 .sync修饰符双向绑定 总结 !!!这边文章记录的是 vue2 的概念,vue3 对双向绑定进行了改动,不要把一下代码放到 ...

  3. vue自定义组件-文件上传后端接口

    学习目标: vue自定义组件-文件上传后端接口 学习内容: 准备工作: 后端环境:JAVA-Springboot项目数据库表(这里使用psql数据库):sys_file_record保存上传文件的信息 ...

  4. vue自定义组件及定义插槽

    vue自定义组件绑定事件: <!DOCTYPE html> <html lang="en"> <head><meta charset=&q ...

  5. vue自定义组件,插槽,自定义事件

    vue组件套娃 1. vue自定义组件 2. 组件和插槽套娃 3. vue组件通过自定义事件更改vue实例中的数据 1. vue自定义组件 语法 Vue.component('自定义组件名', {pr ...

  6. vue 嵌套表格组件_使用form-create动态生成vue自定义组件和嵌套表单组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 maker.create 通过建立一个虚拟 DOM的方式生成自定义组件 生成 Maker let rule = [ formCreat ...

  7. vue自定义组件是.vue还是html,Vue自定义组件的四种方式示例详解

    四种组件定义方式都存在以下共性(血泪史) 规则: 1.组件只能有一个根标签 2.记住两个词全局和局部 3.组件名称命名中'-小写字母'相当于大写英文字母(hello-com 相当于 helloCom) ...

  8. Vue自定义组件封装及使用Excel

    Vue自定义组件封装及使用Excel 一.js-xlsx 组件安装 二. 创建vue组件 三.使用 四.效果图 一.js-xlsx 组件安装 npm install xlsx --savenpm in ...

  9. Vue自定义组件之时间跨度选择器

    时间跨度选择器 该组件是个时间跨度选择器. 基于 vue自定义组件之选择器 和 Vue自定义组件之日期时间范围选择器 点击选框,下拉列表中有四个选项,点击自定义时间,后边会出现 日期时间范围选择 代码 ...

  10. Vue自定义组件npm上传私服,且从私服下载使用

    Vue自定义组件npm上传私服,yarn私服下载使用 安装镜像源管理工具nrm 发布自定义组件到公司私服 若未下载nrm源管理工具直接使用npm设置私服地址也可以 以下步骤都是基于npm命令 从私服下 ...

最新文章

  1. [置顶] Hibernate从入门到精通(十一)多对多双向关联映射
  2. Deming管理系列(2)——怎样开发度量能力
  3. php文件用什么浏览,什么是PHP文件 php文件用什么打开
  4. jQuery图表插件Flot
  5. Colaboratory挂载google drive的两种网盘
  6. 解决 fprintd-0.1-19.git04fd09cfa.el6 crash问题
  7. 最大乘积(记忆化搜索)
  8. centos修改磁盘uuid_Centos更换损坏硬盘UUID改变导致系统不能正常启动处理
  9. oracle中取反_oracle正则表达式regexp_like的用法详解
  10. Python当前线程休眠1秒钟
  11. HTML5实现涂鸦板
  12. C#设计模式之十六观察者模式(Observer Pattern)【行为型】
  13. idea java sdk找不到指定文件路径_java-IntelliJ找不到任何声明
  14. 新加用户被保护的解决办法
  15. 怎么测试dpi测试软件,如何测试鼠标DPI?
  16. 目前国内最热门的四款远程桌面控制软件
  17. 高等数学同济第七版课后答案上册
  18. 计算机网络知识点全面总结(有这一篇就够了!!!)
  19. Windows Mobile 开发环境搭建
  20. ps快速放大缩小图片

热门文章

  1. URL重写后,在有页面回发时的处理
  2. build 之前执行task_一次NPM前端项目的CI-Build速度优化
  3. rnn 梯度消失爆炸
  4. 在WPS中提取出的照片在哪找_WPS技巧 | 找不到合适的配图?教你一招搞定
  5. abort has been called翻译_2020年12月大学英语四级翻译练习题:股票投资_四级
  6. Mysql -uroot -p 登陆不上_MySQL命令行登陆,远程登陆MySQL 的方法
  7. python中用str乘方_Python基础知识
  8. php中文网第七期课程目录,php中文网第七期
  9. myFocus制作焦点图
  10. 北京内推 | ​美团无人车团队招聘视觉算法实习生