Pug (Jade) 基地 HTML 页面:找不到元素:#app
Pug (Jade) base HTML Page: Cannot find element: #app
我使用 vibed 服务器。它使用 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")
移至下方有帮助。但是有更好的变体吗?或者没关系?
其实有两种处理方法。一种是将脚本移动到页面底部,第二种是在页面加载时使用事件触发您的代码。
最近(没有 jQuery),您通常监听要加载的页面的方式是监听 DOMContentLoaded 事件。
document.addEventListener("DOMContentLoaded", function() {
var app = new Vue(...)
});
DOMContentLoaded
和 load
事件之间的主要区别在于 DOMContentLoaded
在解析完所有 DOM 内容后触发,而 load
事件等待 所有内容 加载,包括图像、样式表和其他内容。
我使用 vibed 服务器。它使用 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")
移至下方有帮助。但是有更好的变体吗?或者没关系?
其实有两种处理方法。一种是将脚本移动到页面底部,第二种是在页面加载时使用事件触发您的代码。
最近(没有 jQuery),您通常监听要加载的页面的方式是监听 DOMContentLoaded 事件。
document.addEventListener("DOMContentLoaded", function() {
var app = new Vue(...)
});
DOMContentLoaded
和 load
事件之间的主要区别在于 DOMContentLoaded
在解析完所有 DOM 内容后触发,而 load
事件等待 所有内容 加载,包括图像、样式表和其他内容。