绝客部落 2021-09-22 14:11 采纳率: 100%
浏览 595
已结题

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

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2021-09-22 14:23
    关注

    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>
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月17日
  • 创建了问题 9月22日