window.onload下vue的dom层数据无法被修改解决

博文背景
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

    <script>
        window.onload=function() {
	        const app=new Vue({
	            el: "#myapp",
	            data: {
	                info: "Hello World!!!",
	                flag: true
	            }
	        })
        }
    </script>
</head>

<body>
    <div id="myapp" v-if="flag">
        {{ info }}
    </div>
</body>
</html>

vue文档
web console
这里其实还犯了一个错误,我们需要修改的是app对象而不是myapp标签

解决办法

首先呢,看到别人博客上面写的可以整
https://www.cnblogs.com/sanduzxcvbnm/p/13521729.html

然后比较差别,发现把我的script放在body闭合标签之前就可以了

原理大概和window.onload这些玩意的作用域还有什么加载顺序之类的有关系

https://www.cnblogs.com/xumqfaith/p/8036214.html

更新代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

    <script>
    	// 在函数外部声明app即可
        let app=null;
        window.onload=function() {
            app=new Vue({
                el: "#myapp",
                data: {
                    info: "Hello World!!!",
                    flag: true
                }
            })
        }
    </script>
</head>

<body>
    <div id="myapp" v-if="flag">
        {{ info }}
    </div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

    <script>
        window.onload=function() {
        	// 把app绑定到window上面即可
            window.app=new Vue({
                el: "#myapp",
                data: {
                    info: "Hello World!!!",
                    flag: true
                }
            })
        }
    </script>
</head>

<body>
    <div id="myapp" v-if="flag">
        {{ info }}
    </div>
</body>
</html>

web console

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值