美文网首页vue
【转】vue改变一个变量值关联的变量也变换解决方法(引用和传值)

【转】vue改变一个变量值关联的变量也变换解决方法(引用和传值)

作者: 长夏丶低吟 | 来源:发表于2020-06-12 14:46 被阅读0次

    首先说下引用和传值的条件区别

    引用:

    object(对象)    array(数组)这两个类型进行等于赋值的时候实际上是进行的引用,源数据改变后目标数据也就发生了变换

    传值:

      string number boolean这几个类型进行赋值的时候是进行的传值,并不会跟着源数据的变换目标数据发生改变

    比如

    data() {

        return {

          dataForm1:{

            number:1

          },

          dataForm2:[]

        }

    };

    this.dataForm2.push(this.dataForm1);

    console.log( this.dataForm2[0].number );//1

    这个时候dataForm2中添加dataForm1打印出来的是没有问题的

    this.dataForm1.number =120;

    this.dataForm2.push(this.dataForm1);

    console.log( this.dataForm2[0].number );//120

    console.log( this.dataForm2[1].number );//120

    然后在添加一条修改过的dataForm1会发现之前添加的第一条也发生变化了、

    这里是因为dataForm2是在引用dataForm1的值而不是传递

    解决方法

    this.dataForm2=JSON.parse(JSON.stringify(this.dataForm1))

    ————————————————

    版权声明:本文为CSDN博主「前端恶霸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/weixin_41916005/java/article/details/86008022

    相关文章

      网友评论

        本文标题:【转】vue改变一个变量值关联的变量也变换解决方法(引用和传值)

        本文链接:https://www.haomeiwen.com/subject/njngtktx.html