详解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 相关文章推荐
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
在次封装easyui-Dialog插件实现代码
Nov 14 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
jquery入门必备的基本认识及实例(整理)
Jun 24 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
Aug 24 Javascript
AngularJS  $on、$emit和$broadcast的使用
Sep 05 Javascript
angular中使用Socket.io实例代码
Jun 03 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
Jul 13 Javascript
通过GASP让vue实现动态效果实例代码详解
Nov 24 Javascript
vue实现井字棋游戏
Sep 29 Javascript
JS相册图片抖动放大展示效果的示例代码
Jan 29 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数组去重的函数代码
2013/02/03 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
python 代码运行时间获取方式详解
2020/09/18 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
四年大学生活的自我评价范文
2014/02/07 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
银行服务感言
2014/03/01 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
宣传活动总结范文
2014/07/01 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
前台接待岗位职责
2015/02/03 职场文书
工作收入证明范本
2015/06/12 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏