详解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 相关文章推荐
关于jquery动态增减控件的一些想法和小插件
Aug 01 Javascript
javascript中match函数的用法小结
Feb 08 Javascript
js实现jquery的offset()方法实例
Jan 10 Javascript
分享纯手写漂亮的表单验证
Nov 19 Javascript
JS实现单击输入框弹出选择框效果完整实例
Dec 14 Javascript
node.js实现快速截图
Aug 27 Javascript
jQuery 特性操作详解及实例代码
Sep 29 Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
Apr 11 Javascript
React+EggJs实现断点续传的示例代码
Jul 07 Javascript
js中实现继承的五种方法
Jan 25 Javascript
JS前端使用Canvas快速实现手势解锁特效
Sep 23 Javascript
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和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
AngularJS基础知识
2014/12/21 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
Python lambda表达式用法实例分析
2018/12/25 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
办公室打字员岗位职责
2014/04/16 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
党员批评与自我批评
2014/10/15 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
500字作文之周记
2019/12/13 职场文书
Redis性能监控的实现
2021/07/09 Redis
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB