详解vue 自定义组件使用v-model 及探究其中原理


Posted in Javascript onOctober 11, 2019

1、首先我们来实现自定义组件中使用v-model

父组件中注册子组件

<template>
 <div id="app">
  <p>{{name}}</p>
  <MyInput v-model="name"/>
 </div>
</template>

<script>
import MyInput from './components/MyInput.vue'
export default {
 name: 'app',
 data(){
  return {
   name: 132
  }
 },
 components: {
  MyInput
 },
}
</script>

子组件接收父组件传值

<template>
  <div>
    <input type="text" v-bind:value="value" v-on:input="$emit('input', $event.target.value)" />
  </div>
</template>
<script>
export default {
 name: "MyInput",
 props: {
  value: ""
 },
};
</script>

2.探究v-model

在input中的v-model功能是实现数据的双向绑定,即绑定name值及改变值。

工作等同于以下代码:

<input type="text" v-bind:value="name" v-on:input="event=>name=event.target.value" />

v-bind将name的值绑定到value

v-on绑定input事件,当事件触发时将事件目标值赋值给name

而在自定义标签中的v-model与在input中的功能一致,但绑定的事件有些许不同,如下:

<MyInput type="text" v-bind:value="value" v-on:input="value=>name=value" />

在子组件中使用$emit触发MyInput中的input事件,此时$emit并不能传input的event的事件,而是直接传目标值。

详解vue 自定义组件使用v-model 及探究其中原理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript事件列表解说
Dec 22 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
Sep 03 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
Apr 07 Javascript
探究Javascript模板引擎mustache.js使用方法
Jan 26 Javascript
基于jquery实现轮播特效
Apr 22 Javascript
性能优化之代码优化页面加载速度
Mar 01 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
vue 引用自定义ttf、otf、在线字体的方法
May 09 Javascript
js布局实现单选按钮控件
Jan 17 Javascript
vue 验证两次输入的密码是否一致的方法示例
Sep 29 Javascript
vue中封装axios并实现api接口的统一管理
Dec 25 Vue.js
JsonProperty 的使用方法详解
Oct 11 #Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 #Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
Oct 11 #Javascript
微信小程序 点击切换样式scroll-view实现代码实例
Oct 11 #Javascript
vue控制多行文字展开收起的实现示例
Oct 11 #Javascript
这15个Vue指令,让你的项目开发爽到爆
Oct 11 #Javascript
js脚本中执行java后台代码方法解析
Oct 11 #Javascript
You might like
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
学习ExtJS 访问容器对象
2009/10/07 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
使用python实现baidu hi自动登录的代码
2013/02/10 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
《大作家的小老师》教学反思
2014/04/16 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
小学生通知书评语
2014/12/31 职场文书
芙蓉镇观后感
2015/06/10 职场文书
小学大队长竞选稿
2015/11/20 职场文书
解析目标检测之IoU
2021/06/26 Python
javascript对象3个属性特征
2021/11/17 Javascript
Python何绘制带有背景色块的折线图
2022/04/23 Python