解决Vue2.x父组件与子组件之间的双向绑定问题


Posted in Javascript onMarch 06, 2018

最近在研究如何写一套基于Vue2.x的UI组件给自己用,提升一点BIG,在制作含有input的组件遇到一个问题:不知怎样才能把子组件中input与调用者(父组件)的数据实现双向绑定,想过使用Vuex,但观摩了一下其他优秀的UI框架,发现使用Vuex会给其他使用者造成麻烦,于是决心找到寻求解决方法,在参考了几篇大牛们文章后,终于找到。

在这将解决方案贴出,希望能帮助到和我一样初次接触Vue这个框架的同行们。

子组件的代码逻辑

<template> 
 <div class="ne-ipt"> 
  <input type="text" v-model="currentValue"> 
 </div> 
</template> 
 
<style lang="less" scoped> 
 @import "../../assets/styles/form/form.less"; 
</style> 
<script> 
 export default { 
  name: 'NeIpt', 
  props: { 
   // 接收一个由父级组件传递过来的值 
   value: { 
    type: String, 
    default: function () { 
     return '' 
    } 
   } 
  }, 
  computed:{ 
   currentValue: { 
    // 动态计算currentValue的值 
    get:function() { 
     return this.value; // 将props中的value赋值给currentValue 
    }, 
    set:function(val) { 
     this.$emit('input', val); // 通过$emit触发父组件 
    } 
   } 
  } 
 } 
</script>

父组件代码逻辑

<template> 
 <div id="button-index"> 
  <ne-ipt placeholder="姓名" v-model="test"></ne-ipt> 
 </div> 
</template> 
<style> 
</style> 
<script> 
 import NeIpt from './NeIpt' 
 export default { 
  name: 'form-index', 
  data () { 
   return { 
    test: '' 
   } 
  }, 
  components: { 
   NeIpt 
  } 
 } 
</script>

在修改子组件的currentValue的时候其实通过$emit触发input事件将值传递给调用者的v-model,从而实现双向绑定。

总结

以上所述是小编给大家介绍的解决Vue2.x父组件与子组件之间的双向绑定问题法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
Mar 24 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
Feb 10 Javascript
js中iframe调用父页面的方法
Oct 30 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
Dec 13 Javascript
easyui combobox开启搜索自动完成功能的实例代码
Nov 08 Javascript
JS 实现 ajax 异步浏览器兼容问题
Jan 21 Javascript
3种vue组件的书写形式
Nov 29 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
Dec 31 Javascript
基于vue-element组件实现音乐播放器功能
May 06 Javascript
element-ui表格列金额显示两位小数的方法
Aug 24 Javascript
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
Javascript实现打鼓效果
Jan 29 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
Mar 06 #Javascript
vue2.0 循环遍历加载不同图片的方法
Mar 06 #Javascript
node的process以及child_process模块学习笔记
Mar 06 #Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 #Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 #jQuery
Vue2.0 http请求以及loading展示实例
Mar 06 #Javascript
浅析Vue中method与computed的区别
Mar 06 #Javascript
You might like
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP clearstatcache()函数详解
2010/03/02 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
PHP count()函数讲解
2019/02/03 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
Python中字符串的处理技巧分享
2016/09/17 Python
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
python skimage 连通性区域检测方法
2018/06/21 Python
详解python while 函数及while和for的区别
2018/09/07 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
Python 如何对文件目录操作
2020/07/10 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
剪彩仪式主持词
2014/03/19 职场文书
2014年评职称工作总结
2014/11/20 职场文书
五好家庭事迹材料
2014/12/20 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
MySQL事务的隔离级别详情
2022/07/15 MySQL