解决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 相关文章推荐
用htc组件制作windows选项卡
Jan 13 Javascript
JavaScript中void(0)的具体含义解释
Feb 27 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
Feb 10 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
Dec 22 Javascript
vue初尝试--项目结构(推荐)
Jan 30 Javascript
JS实现的视频弹幕效果示例
Aug 17 Javascript
JavaScript中Array方法你该知道的正确打开方法
Sep 11 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
react写一个select组件的实现代码
Apr 03 Javascript
JavaScript enum枚举类型定义及使用方法
May 15 Javascript
JavaScript+HTML实现学生信息管理系统
Apr 20 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清除字符串中所有无用标签的方法
2014/12/01 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
js Form.elements[i]的使用实例
2011/11/13 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
js登录弹出层特效
2014/03/07 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
详解vue的数据binding绑定原理
2017/04/12 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
python mysqldb连接数据库
2009/03/16 Python
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
Python3常用内置方法代码实例
2019/11/18 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
介绍一下#error预处理
2015/09/25 面试题
护士检查书
2014/01/17 职场文书
安全责任协议书
2014/04/21 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
求职自我推荐信
2015/03/24 职场文书
赡养老人协议书范本
2015/08/06 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
Python打包为exe详细教程
2021/05/18 Python
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
将MySQL的表数据全量导入clichhouse库中
2022/03/21 MySQL