【问题标题】:Why Won't This Vuejs "Hello World" Example Render On My Computer?为什么这个 Vuejs“Hello World”示例不能在我的计算机上呈现?
【发布时间】:2016-04-18 21:56:27
【问题描述】:

我正在尝试将 Vue 与 Phoenix/Elixir 项目一起使用。经过大量的故障排除后,我仍然无法渲染 Vuejs 元素。所以我决定在原始 html/js 中测试简单的“hello world”示例。

它也不起作用。我做错了什么?

这是我试图在我的计算机上复制的 jsfiddle: https://jsfiddle.net/yyx990803/okv0rgrk/

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Vue Test</title>

<script src="https://cdn.jsdelivr.net/vue/latest/vue.js"></script>

<script>
new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  }
})
</script>

</head>
<body>

<div id="app">
    {{ message }}
</div>

</body>
</html>

【问题讨论】:

  • 尝试将脚本添加到 html 文件的头部。或者将其包裹在 window.onload 钩子中
  • 如果您检查由该小提琴生成的 iframe,您会看到 javascript 面板中的代码已插入 iframe 的头部
  • 我相信脚本在 head 标签中?
  • 哈哈你是对的,我的错。但是检查您发布的小提琴中生成的 iframe,Vue 实例被包装在 window.onload 事件中。试试看。

标签: javascript jquery vue.js


【解决方案1】:

将第二个script 标签放在&lt;/body&gt; 之前。您的代码无法正常工作的原因是您试图在 #app 存在之前安装它。如果你在它在那里之后尝试安装它会没事的。

【讨论】:

  • 正如@Bill 提到的,您的第二个脚本标签需要出现在#app div 之后。在实践中,您应该将所有脚本标记作为 html 正文中的最后一项。
  • 除非 OP 从原始版本中编辑了他的问题,否则第二个脚本在 &lt;/body&gt; 之前。所以我不确定你的意思
  • 紧接在&lt;/body&gt; 之前。从行号的角度来看,不仅仅是在它之前。
【解决方案2】:

这是一个最小的例子:

<!DOCTYPE html>
<html>
  <head>
    <script src="http://cdn.jsdelivr.net/vue/2.0.3/vue.js"></script>
  </head>
  <body>
    <div id="app">
      <p>{{ message }}</p>
    </div>
    <!-- Must put the script below after the app div -->
    <script type="text/javascript">
      new Vue({
        el: '#app',
        data: {
          message: 'Hello Vue.js!'
        }
      })
    </script>
  </body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 2013-04-02
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多