精易论坛

标题: VUE加elementUI的一个坑.随便记录一下! [打印本页]

作者: supeng4676    时间: 2022-9-1 18:48
标题: VUE加elementUI的一个坑.随便记录一下!
首先前端用uniapp写是效果不错的.
后端管理页面用vue+elementUI(饿了么UI),配合起来就可以做一个相当完整的项目了.
但是我最近发现一个坑.我估计只有做过的才知道.
比如一个按钮绑定了事件:
@onclick(hanshu(canshu))



如果hanshu里面的参数是变量传进来的
data:{
canshu:[],
table:[]
}



hanshu(val){
table = val  (如果这样赋值)

}

页面显示:
div里面放input ,input的内容用for 循环循环出table数组里面的内容.
然后你修改input的内容会发现,canshu的内容也会改变....这就是双向绑定.
也就是说,一个变量a,你传参传给别的变量A,别的地方改了,而且改的是别的变量A,那么变量a也会跟着改变...



想来想去没办法,最后发现一个解决办法:




就是把变量a里面每一个成员单独的赋值给变量A,然后这种情况就解决了.....
碰巧发现的一个问题....
本人vue新手.给各位萌新排个坑.

作者: wt70y3    时间: 2022-9-1 19:11
数据深拷贝就是这么来的,可以直接用A=JSON.parse(JSON.stringify(a))
作者: bm123    时间: 2022-9-1 20:26
javascript的基本数据类型和引用数据类型,存储的堆与栈的关系
作者: supeng4676    时间: 2022-9-1 23:32
bm123 发表于 2022-9-1 20:26
javascript的基本数据类型和引用数据类型,存储的堆与栈的关系

谢谢 大佬科班出身啊 佩服佩服
作者: bm123    时间: 2022-9-2 09:27
supeng4676 发表于 2022-9-1 23:32
谢谢 大佬科班出身啊 佩服佩服

也不是,,,,不过我是专业做前端的
作者: qinzaidj    时间: 2022-9-2 09:29
VUE的基础啊
因为你通过变量传进来的的参数是个 Proxy 对象
table = toRaw(val) 就行了
作者: 小铭    时间: 2022-9-2 11:39
这个不关vue的问题  是JS基础问题  用深拷贝就可以解决了
作者: 2442295093    时间: 2022-9-2 21:42
对象是引用类型
作者: supeng4676    时间: 2022-9-3 11:20
qinzaidj 发表于 2022-9-2 09:29
VUE的基础啊
因为你通过变量传进来的的参数是个 Proxy 对象
table = toRaw(val) 就行了 ...

哟西 嗖得寺内 你滴大大滴良民
作者: lmwdz    时间: 2022-9-3 11:25
感谢分享
作者: astaaaaaa    时间: 2022-9-9 22:53
后你修改input的内容会发现,canshu的内容也会改变....这就是双向绑定.
作者: lianzuo123    时间: 2022-9-11 10:07
这...麻烦先了解下引用数据类型跟基本数据类型
作者: fullzoon    时间: 2022-9-15 15:45
对象和数组都是引用数据类型。赋值给别的变量的话只是赋值了映射的地址,并没有复制成两个对象或者数组。修改的时候修改的还是同一个
作者: xcs1798    时间: 2022-9-17 17:29
VUE看不懂啊,要怎么学
作者: 第八号当铺    时间: 2022-9-18 03:29
对象克隆问题,可以这样赋值 this.table = JSON.parse(JSON.stringify(val))
作者: 蕉仔    时间: 2022-9-23 18:29
引用类型 和值类型不一样的  值类型赋值  = 就可以  引用类型需要传递引用地址 ,复制的只是数据,但是地址不一样  不过也有语言处理的了 python已经处理过了  引用类型可以直接=
作者: 蕉仔    时间: 2022-9-23 18:29
蕉仔 发表于 2022-9-23 18:29
引用类型 和值类型不一样的  值类型赋值  = 就可以  引用类型需要传递引用地址 ,复制的只是数据,但是地址不 ...

拷贝分为深拷贝和浅拷贝


作者: mywood    时间: 2022-10-4 10:49
感谢分享
作者: 单身汪    时间: 2022-10-4 12:14
也可以用 lodash 的 cloneDeep 方法
作者: zipper2016    时间: 2023-2-4 13:39
hanshu(val){table=JSON.parse(JSON.stringify(val))}
作者: leaqi    时间: 2025-3-5 23:00





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4