解决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 相关文章推荐
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
Jan 22 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
Oct 17 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 Javascript
jQuery进行组件开发完整实例
Dec 15 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
Jan 06 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
vue表单绑定实现多选框和下拉列表的实例
Aug 12 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
vue2.0获取鼠标位置的方法
Sep 13 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
解析ajax事件的调用顺序
2013/06/17 PHP
php微信支付之APP支付方法
2015/03/04 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
Javascript 自定义类型方法小结
2010/03/02 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
js性能优化技巧
2015/11/29 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
python 读写txt文件 json文件的实现方法
2016/10/22 Python
python实现kNN算法
2017/12/20 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python实现简易动态时钟
2018/11/19 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
python对XML文件的操作实现代码
2020/03/27 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
中专毕业生自荐信
2013/11/16 职场文书
管理心得体会
2013/12/28 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
节水倡议书
2015/01/19 职场文书