尚未定义 Vue 模板或渲染函数我都没有使用?

新手上路,请多包涵

这是我的主要 javascript 文件:

 import Vue from 'vue'

new Vue({
  el: '#app'
});

我的 HTML 文件:

 <body>
    <div id="app"></div>

    <script src="{{ mix('/js/app.js') }}"></script>
</body>

带有运行时构建的 Vue.js 的 Webpack 配置:

 alias: {
    'vue$': 'vue/dist/vue.runtime.common.js'
}

我仍然收到这个众所周知的错误:

[Vue 警告]:无法挂载组件:未定义模板或渲染函数。 (在根实例中找到)

当我在安装 Vue 的 #app div 中什至没有任何东西时,怎么会出现渲染/模板错误?上面写着 found in root 但是什么都找不到,因为它甚至没有任何内容?

如果这不起作用,我该如何安装?

编辑:

我试过这样似乎有效:

 new Vue(App).$mount('#app');

这是有道理的,因为使用 el 属性意味着您正在“扫描”该 dom 元素以查找任何组件,并且它是无用的,因为运行时构建没有编译器。

仍然是一个非常奇怪的错误消息,尤其是当我清空整个#app div 时。

希望有人能证实我的想法。

原文由 Stephan-v 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 692
2 个回答

您收到该错误的原因是您使用的运行时构建不支持 HTML 文件中的模板,如 vuejs.org 所示

本质上,vue 加载文件发生的情况是它们的模板在编译时转换为渲染函数,而您的基本函数试图从您的 html 元素进行编译。

原文由 Justin MacArthur 发布,翻译遵循 CC BY-SA 4.0 许可协议

就我而言,我收到错误是因为我从 Laravel Mix 版本 2 升级到了 5。

在 Laravel Mix 版本 2 中,您可以按如下方式导入 vue 组件:

 Vue.component(
    'example-component',
    require('./components/ExampleComponent.vue')
);

在 Laravel Mix 版本 5 中,您必须按如下方式导入组件:

 import ExampleComponent from './components/ExampleComponent.vue';

Vue.component('example-component', ExampleComponent);

这是文档: https ://laravel-mix.com/docs/5.0/upgrade

更好的是,为了提高应用程序的性能,您可以延迟加载组件,如下所示:

 Vue.component("ExampleComponent", () => import("./components/ExampleComponent"));

原文由 mutiemule 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题