解决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中直接引用Microsoft的COM生成Word
Jan 20 Javascript
10分钟学会写Jquery插件实例教程
Sep 06 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
分享javascript计算时间差的示例代码
Mar 19 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 Javascript
解决浏览器会自动填充密码的问题
Apr 28 Javascript
vue操作动画的记录animate.css实例代码
Apr 26 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
May 20 Javascript
一篇文章带你浅入webpack的DLL优化打包
Feb 20 Javascript
ES6字符串的扩展实例
Dec 21 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
新52大事件
2020/03/03 欧美动漫
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
Python下Fabric的简单部署方法
2015/07/14 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
浅析Python 多行匹配模式
2020/07/24 Python
购买原创艺术品:Zatista
2019/11/09 全球购物
国贸专业个人求职信分享
2013/12/04 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
办公室禁烟通知
2015/04/23 职场文书
配置nginx负载均衡
2022/05/06 Servers