javascript - Vue 模板或渲染函数尚未定义,但我两者都没有使用?

标签 javascript vuejs2 vue-component vue.js

这是我的主要 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 warn]: Failed to mount component: template or render function not defined. (found in root instance)

为什么当我在挂载 Vue 的 #app div 中什至没有任何东西时,我仍然收到渲染/模板错误?它说 found in root 但没有找到任何内容,因为它甚至没有任何内容?

如果这不起作用,我该如何挂载?

编辑:

我试过这样的,似乎有效:

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

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

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

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

最佳答案

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

在 Laravel Mix Version 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"));

关于javascript - Vue 模板或渲染函数尚未定义,但我两者都没有使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41983767/

相关文章:

javascript - JQuery UI 可拖放

javascript - 为什么选项卡在 div Vue JS 上不起作用?

javascript - 类型错误 : Cannot read property 'get' of undefined - Vue-resource and Nuxt

typescript :如何为 npm 模块使用本地类型声明文件

javascript - vue-good-table 行上是否有右键单击事件以显示上下文菜单?

javascript - mouseenter 和 mouseleave 停止动画

javascript - 脚本标记中的 onload 事件未触发

javascript - 水平重叠两个 DIVS

javascript - vue.js 组件内联样式串联

javascript - 如何将数据传回 VueJS 中的父组件?