解决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去除空格的几种方法
Oct 03 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
Jan 21 Javascript
基于BootStrap环境写jQuery tabs插件
Jul 12 Javascript
Angularjs的ng-repeat中去除重复数据的方法
Aug 05 Javascript
JavaScript-html标题滚动效果的简单实现
Sep 08 Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 Javascript
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
详解Vue组件实现tips的总结
Nov 01 Javascript
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
js实现石头剪刀布游戏
Oct 11 Javascript
jQuery-App输入框实现实时搜索
Nov 19 jQuery
浅谈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 FPDF类库应用实现代码
2009/03/20 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
Smarty模板配置实例简析
2019/07/20 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
JS delegate与live浅析
2013/12/21 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
关于box-sizing的全面理解
2016/07/28 HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
优秀毕业生的求职信
2014/07/21 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
财务会计求职信范文
2015/03/20 职场文书
三八节活动主持词
2015/07/04 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers