解决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 相关文章推荐
漂亮的仿flash菜单,来自蓝色经典
Jun 26 Javascript
jQuery 拖动层(在可视区域范围内)
May 24 Javascript
Javascript实现简单的富文本编辑器附演示
Jun 16 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
Nov 04 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
vue实现ToDoList简单实例
Feb 07 Javascript
探究react-native 源码的图片缓存问题
Aug 24 Javascript
Vue cli+mui 区域滚动的实例代码
Jan 25 Javascript
微信小程序中添加客服按钮contact-button功能
Apr 27 Javascript
vue在手机中通过本机IP地址访问webApp的方法
Aug 15 Javascript
Vue-component全局注册实例
Sep 06 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 八种基本的数据类型小结
2011/06/01 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
JQuery 浮动导航栏实现代码
2009/08/27 Javascript
javascript 时间比较实现代码
2009/10/28 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
用js编写留言板
2020/03/17 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
python使用marshal模块序列化实例
2014/09/25 Python
Python格式化css文件的方法
2015/03/10 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python2 与python3的print区别小结
2018/01/16 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
Django通过json格式收集主机信息
2020/05/29 Python
Pycharm github配置实现过程图解
2020/10/13 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
建筑系毕业生自我鉴定
2014/01/24 职场文书
干部选拔任用方案
2014/05/26 职场文书
安全月宣传标语
2014/10/07 职场文书
老公保证书怎么写
2015/02/26 职场文书
继续教育个人总结
2015/03/03 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers