vue3.0里面怎么在外部更改data里面的数据


const App = {
    data() {
        return {
            pmgao: document.documentElement.clientHeight,
        }
    },
    methods: {
        errorHandler() {
            return true
        },
    },
};
const app = Vue.createApp(App);
app.use(ElementPlus);
app.mount("#app");

console.log(app.pmgao);
window.onresize = function () {
    let pmg = document.documentElement.clientHeight;
    console.log(pmg);
    app.$data.pmgao = pmg;  //这句报错
}

之前vue2.0可以直接用 app.$data.pmgao = pmg; 更改 3.0里面不行了 求解3.0的外部更改data数据的方法

img

vue实例没有$data属性了吧,直接在mounted事件中注册onresize事件更新pmgao数据,一下代码测试有效,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~

<script src="https://unpkg.com/vue@next" data-vue="3.0"></script>
<div id="app">
    {{pmgao}}
</div>
<script>

    const App = {
        data() {
            return {
                pmgao: document.documentElement.clientHeight,
            }
        },
        mounted() {///////////
            window.onresize =  ()=> {
                let pmg = document.documentElement.clientHeight;
                console.log(pmg);
                this.pmgao = pmg;  
            }
        },
        methods: {
            errorHandler() {
                return true
            },
        },
    };
    const app = Vue.createApp(App);
  //  app.use(ElementPlus);
    app.mount("#app");
</script>


Vue3也是可以的,你应该检查一下是不是其他错误