详解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 29 Javascript
Javascript判断文件是否存在(客户端/服务器端)
Sep 16 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
Mar 09 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
微信小程序 实现动态显示和隐藏某个控件
Apr 27 Javascript
Vue-cli@3.0 插件系统简析
Sep 05 Javascript
JS高阶函数原理与用法实例分析
Jan 15 Javascript
JavaScript学习教程之cookie与webstorage
Jun 23 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
Jun 28 Javascript
Layui实现数据表格默认全部显示(不要分页)
Oct 26 Javascript
编写一个javascript元循环求值器的方法
Apr 14 Javascript
vue3.0 加载json的方法(非ajax)
Oct 26 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 查找字符串常用函数介绍
2012/06/07 PHP
PHP中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
js实现图片放大展示效果
2017/08/30 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
pandas中Timestamp类用法详解
2017/12/11 Python
python针对excel的操作技巧
2018/03/13 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
美国存储和组织商店:The Container Store
2017/08/16 全球购物
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
大二自我鉴定范文
2013/10/05 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
个人合作协议范本
2015/08/06 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python