解决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 相关文章推荐
javascript 仿QQ滑动菜单效果代码
Sep 03 Javascript
node.js中使用node-schedule实现定时任务实例
Jun 03 Javascript
Perl Substr()函数及函数的应用
Dec 16 Javascript
Webwork 实现文件上传下载代码详解
Feb 02 Javascript
jQuery基于BootStrap样式实现无限极地区联动
Aug 26 Javascript
jQuery模拟淘宝购物车功能
Feb 27 Javascript
Vuejs 组件——props数据传递的实例代码
Mar 07 Javascript
微信小程序 图片加载(本地,网路)实例详解
Mar 10 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
js事件触发操作实例分析
Jun 21 Javascript
js页面加载后执行的几种方式小结
Jan 30 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
Dec 04 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
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
React 组件间的通信示例
2018/06/14 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
python中可以声明变量类型吗
2020/06/18 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
在校生党员自我评价
2013/09/25 职场文书
运动会领导邀请函
2014/02/05 职场文书
大学生励志演讲稿
2014/04/25 职场文书
对教师的评语
2014/04/28 职场文书
小学教师党员承诺书
2015/04/27 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python