详解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条件判断使用小技巧总结
Sep 08 Javascript
计算世界完全对称日的js代码,粗糙版
Nov 04 Javascript
jquery可见性过滤选择器使用示例
Jun 24 Javascript
JS性能优化笔记搜索整理
Aug 21 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
jQuery动态修改字体大小的方法【测试可用】
Sep 09 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
Oct 08 Javascript
一个小时快速搭建微信小程序的方法步骤
Apr 15 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 Javascript
JS+CSS实现3D切割轮播图
Mar 21 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
js中的this关键字详解
2013/09/25 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
javascript数组详解
2014/10/22 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
关于Java String的一道面试题
2013/09/29 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
办公室秘书岗位职责范本
2014/02/11 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
初中班主任评语大全
2014/04/24 职场文书
社会调查研究计划书
2014/05/01 职场文书
解除劳动合同协议书(样本)
2014/10/02 职场文书
加班费申请报告
2015/05/15 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
Golang数据类型和相互转换
2022/04/12 Golang