VUE3,如何在外部修改data里面的对象?

VUE3,如何在外部修改data里面的对象?

var myvue = {
    data() {
        return {
            test: {}
        }
    },
    created() {
        testfunction(this);
    }
}
function testfunction(obj) {
    //想修改test,vue2的set方法不得行
    obj.test.myname='123';
    console.log(obj.test.myname);
}
var vm = Vue.createApp(myvue)
    .mount('#app')


效果图

img


代码如下,如果你修改的是data,直接把data传过去即可,因为对象是纯在一个拷贝问题的,所以可以直接把data传过去。

// 在外部修改data
const mTest = (data) => {
  data.test.myname = '外部修改的data'
}

const { createApp } = Vue
const mVueOptions = {
  data() {
    return {
      test: {}
    }
  },

  mounted() {
    mTest(this.$data)
  }
}
createApp(mVueOptions).mount('#app')

如有帮助请采纳