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 相关文章推荐
学习ExtJS table布局
Oct 08 Javascript
mailto的使用技巧分享
Dec 21 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
Jan 25 Javascript
不提示直接关闭网页窗口的JS示例代码
Dec 17 Javascript
七个很有意思的PHP函数
May 12 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
Aug 20 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
Mar 03 Javascript
js验证手机号、密码、短信验证码代码工具类
Jun 24 Javascript
vue.js中created方法作用
Mar 30 Javascript
浅谈node中的cluster集群
Jun 02 Javascript
vue 实现把路由单独分离出来
Aug 13 Javascript
详解Javascript实践中的命令模式
May 05 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
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
PHP常用的三种设计模式
2017/02/17 PHP
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python转换摩斯密码示例
2014/02/16 Python
python常见数制转换实例分析
2015/05/09 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
美国网上订购鲜花:FTD
2016/09/23 全球购物
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
致接力运动员广播稿
2014/02/17 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
1000字打架检讨书
2014/11/03 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
公司老总年会致辞
2015/07/30 职场文书
入党申请书怎么写?
2019/06/11 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS