【问题标题】:How can I avoid reactivity in vue如何避免 vue 中的反应性
【发布时间】:2020-03-31 12:44:54
【问题描述】:

我正在将一个对象从属性“模型”(我从 Laravel 中的刀片属性模型中获得)分配给数据属性模型。后来数据属性模型发生变化,因为它绑定到表单输入字段。但道具“模型”也发生了变化。它们是同一个对象。我怎样才能避免这种行为?我需要属性“模型”保持安装时的状态。我在 created() 方法和 data() 中试过这个:

 Vue.set(this, 'model', this.transferredData.model);

没用

【问题讨论】:

    标签: laravel vue.js


    【解决方案1】:

    您可以使用spread syntax 创建一个新对象,这样它只会改变新创建的对象。

    Vue.set(this, 'model', {...this.transferredData.model});
    // or Vue.set(this, 'model', Object.assign({}, this.transferredData.model)); 
    

    注意:如果它是嵌套的,那么你必须递归解构,或者你可以使用:

    Vue.set(this, 'model',JSON.parse(JSON.stringify(this.transferredData.model)))
    

    【讨论】:

    猜你喜欢
    • 2022-08-19
    • 1970-01-01
    • 2021-10-04
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多