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 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
Apr 29 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
Jun 23 Javascript
一个简单的jQuery计算器实现了连续计算功能
Jul 21 Javascript
jquery制做精致的倒计时特效
Jun 13 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
Mar 08 Javascript
Angular中使用MathJax遇到的一些问题
Dec 15 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
Sep 18 Javascript
微信小程序扫描二维码获取信息实例详解
May 07 Javascript
vue+element导航栏高亮显示的解决方式
Nov 12 Javascript
vue中el-input绑定键盘按键(按键修饰符)
Jul 22 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 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
MYSQL环境变量设置方法
2007/01/15 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
vue-router之nuxt动态路由设置的两种方法小结
2018/09/26 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
Python读取键盘输入的2种方法
2015/06/16 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
在python shell中运行python文件的实现
2019/12/21 Python
Python之多进程与多线程的使用
2021/02/23 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
特色蛋糕店创业计划书
2014/01/28 职场文书
销售人员获奖感言
2014/02/05 职场文书
庆六一宣传标语
2014/10/08 职场文书
离婚协议书范本2014
2014/10/27 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
全民创业工作总结
2015/08/13 职场文书
入团申请书格式
2019/06/20 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server