【发布时间】:2019-07-08 21:31:35
【问题描述】:
这种行为导致我的项目出现问题。这是正在发生的事情的简化版本。我想了解为什么会发生这种情况,以及如何避免这种情况。 我已经在我的网站头部加载了 vue:
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
这是 Vue 对象:
vueObject = new Vue({
el: '#app',
data: {
"array": []
}
});
现在,我的问题是这个。如何从 Vue 对象中保存“数组”数据项的副本,以便在不实际修改真正的数组 Vue 数据项的情况下对其进行操作? 这是我想要做的,但它没有按预期工作;
var arrayCopy = vueObject.array;
arrayCopy.push("x");
这导致 arrayCopy 和 vueObject.array 都设置为 [“x”]。 我只想将“x”添加到 arrayCopy。 我怎样才能做到这一点?为什么会这样?
【问题讨论】:
-
好吧,老套路是
let copy = JSON.parse(JSON.stringify(vueObject.array)) -
你为什么要把这个逻辑放在 vue 实例之外
-
@BoussadjraBrahim 这不是我的实际项目。这是一个简化的例子。
标签: javascript vue.js vuejs2