vue.js - 如何更改 vue 对象的全部数据?

标签 vue.js

很简单,我只想改变一个Vue对象的全部数据,像这样:

vueobj.$data = newdata; 

但是官方文档说不允许:

VM156 vue.js:597 [Vue warn]: Avoid replacing instance root $data. Use nested data properties instead.

(found in )

所以我尝试了另一种方法:首先通过 $destroy() 销毁 vueobj,然后创建一个新的 vueobj 以将新数据对象绑定(bind)到相同的 UI 元素,但在那之后,UI元素仍然使用旧数据。那么我该如何解决这个问题呢?谢谢!

最佳答案

这对我有用:

<div id="app">
  {{name}}: {{age}}
</div>

const app = new Vue({
  el: "#app",
  data: {
    name: "Alice",
    age: 30
  },
  methods: {
    refresh(data) {
      Object.assign(this.$data, data); // <--
    }
  }
});

const newData = {
  name: "Bob",
  age: 22
};

app.refresh(newData);

关于vue.js - 如何更改 vue 对象的全部数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503275/

相关文章:

javascript - 在javascript中过滤array_values并将其存储在新变量中

javascript - 插入数组会导致无限循环

javascript - 两个页面之间的转换不适用于 vue.js 和 GSAP

javascript - Vue 列表项在状态更改时不会重新渲染

javascript - 如何使用vuejs制作闹钟声音

javascript - 在 vue.js 应用程序中使用浏览器后退/前进按钮

javascript - 刷新数组对象时出错

javascript - 如何在非 vue 网络应用程序中使用 Vuejs 网络组件作为输入元素?

vue.js - Vuetify v-file-input "onchange"工作但没有收到事件

javascript - 如何在 Nuxt.js 生成中动态使用 v-if ?