我使用振动服务器。它使用Pug预处理器(以前称为Jade)。这是我的页面代码:
doctype html
html
head
script(src="https://unpkg.com/vue")
script(src="app.js")
title Hello, World
body
h1 Hello World
#app
|{{message}}
它生成下一个HTML输出:
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/vue"></script><script src="app.js"></script><title>Hello, World</title>
</head>
<body>
<h1>Hello World</h1>
<div id="app">
{{message}}
</div>
</body>
</html>
我的app.js代码:
window.onload = function() {
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
});
app.$mount('#app');
}
但是它不起作用。在浏览器控制台中,我收到下一个错误:
Cannot find element: #app
upd:移动script(src="app.js")
向下帮助。但是有没有更好的变体?或者没关系?
答案 0 :(得分:0)
有两种方法可以处理它。一种是将脚本移动到页面底部,第二种是在页面加载时使用事件触发代码。
这些天你通常监听要加载的页面的方式(没有jQuery)就是监听DOMContentLoaded事件。
document.addEventListener("DOMContentLoaded", function() {
var app = new Vue(...)
});
DOMContentLoaded
和load
事件之间的主要区别是DOMContentLoaded
在解析了所有DOM内容时触发,load
事件等待要加载的所有,包括图像,样式表和其他内容。