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 相关文章推荐
HTTP状态代码以及定义(解释)
Feb 02 Javascript
鼠标事件延时切换插件
Mar 12 Javascript
JavaScript中常用的六种互动方法示例
Mar 13 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
Dec 10 Javascript
微信小程序教程系列之视图层的条件渲染(10)
Apr 19 Javascript
一次Webpack配置文件的分离实战记录
Nov 30 Javascript
JS简单数组排序操作示例【sort方法】
May 17 Javascript
通过实例解析js简易模块加载器
Jun 17 Javascript
vue.js 实现a标签href里添加参数
Nov 12 Javascript
JavaScript实现简单计算器
Mar 19 Javascript
jquery实现简单每周轮换的日历
Sep 10 jQuery
js 数据类型判断的方法
Dec 03 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
php获取字段名示例分享
2014/03/03 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
Firefox div高度自适应
2009/04/28 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
python登录QQ邮箱发信的实现代码
2013/02/10 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
Python 变量的创建过程详解
2019/09/02 Python
使用Tkinter制作信息提示框
2020/02/18 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
规范化管理年活动总结
2014/08/29 职场文书
二人合伙经营协议书
2014/09/13 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
教师个人培训总结
2015/02/11 职场文书
自主招生专家推荐信
2015/03/26 职场文书
怎样写家长意见
2015/06/04 职场文书
2015初中团委工作总结
2015/07/28 职场文书