首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pug (Jade)基HTML页面:无法找到元素:#app

Pug (Jade)基HTML页面:无法找到元素:#app
EN

Stack Overflow用户
提问于 2017-07-24 14:23:47
回答 1查看 319关注 0票数 0

我使用vibed服务器。它使用Pug预处理器(以前称为Jade)。这是我的页面代码:

代码语言:javascript
复制
doctype html
html
    head
        script(src="https://unpkg.com/vue")
        script(src="app.js")
        title Hello, World
    body
        h1 Hello World
        #app
            |{{message}}

它生成下一个HTML输出:

代码语言:javascript
复制
<!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代码:

代码语言:javascript
复制
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")移动到下一个有帮助。但是还有更好的变体吗?还是没事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-24 15:25:37

其实有两种方法来处理它。一个是将脚本移动到页面底部,另一个是在加载页面时使用事件触发代码。

现在(不使用jQuery)通常侦听要加载的页面的方式是侦听DOMContentLoaded事件。

代码语言:javascript
复制
document.addEventListener("DOMContentLoaded", function() {
  var app = new Vue(...)
});

DOMContentLoadedload事件之间的主要区别是,当所有DOM内容都已被解析时,DOMContentLoaded会触发,而load事件则等待加载所有内容,包括图像、样式表和其他内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45283086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档