vue组件传递对象中实现单向绑定的示例


Posted in Javascript onFebruary 28, 2018

当使用vue组件时,组件之间经常需要传递数据,这里不讨论传递一个字符串变量或者数字变量的情况,那些去看官方文档就够了,此处提出我在组件间传递对象时遇到的一个坑。

当组件间传递对象时,由于此对象的引用类型指向的都是一个地址,所以在子组件中修改对象的某个属性值,父组件中的对象对应的属性也会随之改变,如果有这种双向绑定的需要,那么这也算一种不错的办法,但如果不需要这种双向绑定,那就要定义一个新的对象来复制原对象的属性和值,坑就在这里,假如你普通的var、let 一个对象,例如:

computed: { 
  data: function () { 
   let obj={}; 
   obj=this.message//this.message是父组件传递的对象 
   return obj 
 } 
 },

将data中各属性分别绑定到输入框中,并修改试试,你会发现父组件中对应的属性值还是会改变,并没有实现单向绑定的效果,这时就需要加一个方法了

computed: { 
 data: function () { 
  let obj=Object.assign({}, this.message); 
  return obj 
 } 
 },

这样返回的data就是一个新的对象,并不会指向原对象的地址,所以再对其进行修改就不会对父组件中的对象造成影响了。

以上这篇vue组件传递对象中实现单向绑定的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 技巧小结
Apr 02 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
Feb 23 Javascript
javascript学习笔记(四) Number 数字类型
Jun 19 Javascript
jqTransform form表单美化插件使用方法
Jul 05 Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
JS实现的生成随机数的4个函数分享
Feb 11 Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 Javascript
js简单实现调整网页字体大小的方法
Jul 23 Javascript
原生JS实现几个常用DOM操作API实例
Jan 19 Javascript
vuejs响应用户事件(如点击事件)
Mar 14 Javascript
AngularJS实现的回到顶部指令功能实例
May 17 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
Mar 07 Javascript
在Vue组件中使用 TypeScript的方法
Feb 28 #Javascript
React组件中的this的具体使用
Feb 28 #Javascript
浅谈Vue网络请求之interceptors实际应用
Feb 28 #Javascript
Node.js中DNS模块学习总结
Feb 28 #Javascript
Vue自定义指令实现checkbox全选功能的方法
Feb 28 #Javascript
如何在vue中使用ts的示例代码
Feb 28 #Javascript
angularjs select 赋值 ng-options配置方法
Feb 28 #Javascript
You might like
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
jQuery事件用法详解
2016/10/06 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
windows下更新npm和node的方法
2017/11/30 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
JSON的parse()方法介绍
2019/01/31 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
[41:52]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第二场 2月22日
2021/03/11 DOTA
python使用win32com库播放mp3文件的方法
2015/05/30 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
详解爬虫被封的问题
2019/04/23 Python
python3 深浅copy对比详解
2019/08/12 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
情侣吵架检讨书
2014/02/05 职场文书
《阳光》教学反思
2014/02/23 职场文书
《长征》教学反思
2014/04/27 职场文书
开工典礼策划方案
2014/05/23 职场文书
个人授权委托书
2014/09/15 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
警用民用对讲机找不同
2022/02/18 无线电
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android