vue在自定义组件中使用v-model进行数据绑定的方法


Posted in Javascript onMarch 25, 2019

本文介绍了vue v-model进行数据绑定,分享给大家,具体如下

官方例子https://vuefe.cn/v2/api/#model

有这么一句话: 默认情况下,一个组件上的 v-model 会把 value 用作 prop 且把 input 用作 event。

示例:

先来一个组件,不用vue-model,正常父子通信

<!-- parent -->

<template>

<p class="parent">

 <p>我是父亲, 对儿子说: {{sthGiveChild}}</p>

 <Child @returnBack="turnBack" :give="sthGiveChild"></Child>

</p>

</template>

<script>

import Child from './Child.vue';

export default {

 data() {

  return {

   sthGiveChild: '给你100块'

  };

 },

 components: {

  Child

 },

 methods: {

  turnBack(val) {

   this.sthGiveChild = val;

  }

 }

}

</script>
<!-- child -->

<template>

<p class="child">

 <p>我是儿子,父亲对我说: {{give}}</p>

 <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow"   @click="returnBackFn">回应</a>

</p>

</template>

<script>

export default {

 props: {

  give: String

 },

 methods: {

  returnBackFn() {

   this.$emit('returnBack', '还你200块');

  }

 }

}
</script>

点击回应后,父亲对儿子说的话变成了儿子的回应。儿子收到的信息也变了,实现通信。

改用v-model

<!-- parent -->

<template>

<p class="parent">

 <p>我是父亲, 对儿子说: {{sthGiveChild}}</p>

 <Child v-model="sthGiveChild"></Child>

</p>

</template>

<script>

import Child from './Child.vue';

export default {

 data() {

  return {

   sthGiveChild: '给你100块'

  };

 },

 components: {

  Child

 }

}
</script>
<!-- child -->

<template>

<p class="child">

 <p>我是儿子,父亲对我说: {{give}}</p>

 <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow"   @click="returnBackFn">回应</a>

</p>

</template>

<script>

export default {

 props: {

  give: String

 },

 model: {

  prop: 'give',

  event: 'returnBack'

 },

 methods: {

  returnBackFn() {

   this.$emit('returnBack', '还你200块');

  }

 }

}
</script>

文案虽有不同,但是效果最终是一致的。

看看官方自定义组件的v-model

官方例子https://vuefe.cn/v2/api/#model

有这么一句话: 默认情况下,一个组件上的 v-model 会把 value 用作 prop 且把 input 用作 event。

尝试把上边子组件的例子改一下,也是跑的通的

<!-- child -->

<template>

<p class="child">

 <p>我是儿子,父亲对我说: {{value}}</p>

 <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow"   @click="returnBackFn">回应</a>

</p>

</template>

<script>

export default {

 props: {

  value: String

 },

 methods: {

  returnBackFn() {

   this.$emit('input', '还你200块');

  }

 }

}
</script>

做一下总结:

如果你懒,不想自己去处理事件,那就用默认的 'value' && 'input' 事件去处理,如果用原生事件的,甚至连model属性也可以省去。

如果你想自己的代码比较明确,区分出自定义事件,那么下面的组合才是你的菜。

prop和event看你自己心情定义,当然要知名见意【尽量避开关键字】

model: {
prop: 'someProp', // 注意,是prop,不带s。我在写这个速记的时候,多写了一个s,调试到怀疑人生
event: 'someEvent'
}
this.$emit('someProp', [returnValueToParent])

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

Javascript 相关文章推荐
基于jquery可配置循环左右滚动例子
Sep 09 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
jQuery实现的多选框多级联动插件
May 02 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
Aug 12 Javascript
jQuery给元素添加样式的方法详解
Dec 30 Javascript
JavaScript中定义类的方式详解
Jan 07 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
Jul 05 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
Jul 24 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
24个ES6方法解决JS实际开发问题(小结)
May 31 Javascript
Node.js之readline模块的使用详解
Mar 25 #Javascript
Javascript的this详解
Mar 23 #Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 #Javascript
vue中组件的3种使用方式详解
Mar 23 #Javascript
ES6入门教程之Array.from()方法
Mar 23 #Javascript
setTimeout与setInterval的区别浅析
Mar 23 #Javascript
如何通过setTimeout理解JS运行机制详解
Mar 23 #Javascript
You might like
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
python数据结构树和二叉树简介
2014/04/29 Python
Python操作串口的方法
2015/06/17 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
python PyTorch预训练示例
2018/02/11 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
python3字符串操作总结
2019/07/24 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
pyspark 随机森林的实现
2020/04/24 Python
医学毕业生自荐信
2013/10/11 职场文书
大学生学习生活的自我评价
2013/11/01 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
小学学校评估方案
2014/06/08 职场文书
食堂标语大全
2014/06/11 职场文书
单位单身证明样本
2014/10/11 职场文书
教师党员整改措施
2014/10/24 职场文书
初中重阳节活动总结
2015/05/05 职场文书
python Polars库的使用简介
2021/04/21 Python