解决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 相关文章推荐
原生JS实现加入收藏夹的代码
Oct 24 Javascript
js实现按钮颜色渐变动画效果
Aug 20 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
H5手机端多文件上传预览插件
Apr 21 Javascript
JavaScript实现音乐自动切换和轮播
Nov 05 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
p5.js入门教程之平滑过渡(Easing)
Mar 16 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
Aug 31 Javascript
Vue动态面包屑功能的实现方法
Jul 01 Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 28 Javascript
JS前端宏任务微任务及Event Loop使用详解
Jul 23 Javascript
JS实现刷新网页后之前浏览位置保持不变示例详解
Aug 14 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中如何将数组变量写入文件
2013/06/06 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
vue.js表格分页示例
2016/10/18 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
详解vue 数据传递的方法
2018/04/19 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python3 处理JSON的实例详解
2017/10/29 Python
Python中单、双下划线的区别总结
2017/12/01 Python
想学python 这5本书籍你必看!
2018/12/11 Python
Python构建图像分类识别器的方法
2019/01/12 Python
如何使用repr调试python程序
2020/02/28 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
python实现简单的五子棋游戏
2020/09/01 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
后勤工作职责
2013/12/22 职场文书
中专生自我鉴定书范文
2013/12/28 职场文书
公益活动邀请函
2014/02/05 职场文书
先进班组材料范文
2014/12/25 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
教师远程培训心得体会
2016/01/09 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
使用CSS设置滚动条样式
2022/01/18 HTML / CSS