解决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 相关文章推荐
Event altKey,ctrlKey,shiftKey属性解析
Dec 18 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
Dec 19 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
May 26 Javascript
完美实现bootstrap分页查询
Dec 09 Javascript
Javascript删除指定元素节点的方法
Jun 21 Javascript
详解Bootstrap各式各样的按钮(推荐)
Dec 13 Javascript
原生JS实现简单放大镜效果
Feb 08 Javascript
用angular实现多选按钮的全选与反选实例代码
May 23 Javascript
iview给radio按钮组件加点击事件的实例
Sep 30 Javascript
用Node编写RESTful API接口的示例代码
Jul 04 Javascript
express中static中间件的具体使用方法
Oct 17 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
Apr 25 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查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP 数组基础知识小结
2010/08/20 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
PHP导入导出Excel代码
2015/07/07 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
详解a++和++a的区别
2017/08/30 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
Python中音频处理库pydub的使用教程
2017/06/07 Python
python实现log日志的示例代码
2018/04/28 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
调整Jupyter notebook的启动目录操作
2020/04/10 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
会计专业毕业生求职信分享
2014/01/03 职场文书
服装采购员岗位职责
2014/03/15 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
2014年党员个人剖析材料
2014/10/08 职场文书
模范教师材料大全
2014/12/16 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript