[Vue 警告]:无法挂载组件:未定义模板或渲染函数。错误

Posted

技术标签:

【中文标题】[Vue 警告]:无法挂载组件:未定义模板或渲染函数。错误【英文标题】:[Vue warn]: Failed to mount component: template or render function not defined. Error 【发布时间】:2017-10-20 16:01:03 【问题描述】:

我正在尝试构建一个 Vue 应用程序,但我在控制台上收到此错误:

[Vue 警告]:挂载组件失败:未定义模板或渲染函数。

这是我的代码:

header.vue

<header>
    <div class="page-logo">Foo.com</div>
</header>
<nav>
    <ul class="nav">
        <li>My Account</li>
        <li>Log In</li>
        <li>Log Out</li>
        <li>Sign Up</li>
    </ul>
</nav>
</header>

这是我的app.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import $ from 'jquery'
Vue.use(VueRouter)

var App = (function (App) 
    App.appComp = 
        header : Vue.component('mainMenu', require('./components/app/header.vue'))
    ;
    const router = new VueRouter(
    routes: [
        
          path: '/',
          components: 
            header: App.appComp.header,
          
        
      ]
    );
    App.app = new Vue(
        router
    ).$mount('#app');
    return App;
)(App || ); 

我正在尝试使用 laravel Mix 构建它。 但我在控制台中收到此错误:

[Vue 警告]:无法挂载组件:未定义模板或渲染函数。 在 ---> 在 /opt/lampp/htdocs/gif/resources/assets/js/components/app/header.vue 中找到

我在谷歌搜索,我找到了这个答案:Vue template or render function not defined yet I am using neither?

所以我试图覆盖 mix.xml 中的定义。我做到了:

 mix.webpackConfig(
    resolve: 
        alias: 
            'vue$': 'vue/dist/vue.esm.js' // 'vue/dist/vue.common.js' for webpack 1
        
    
);

这不起作用,所以我尝试更改 webpack 配置文件

我在那里找到了这一行:

 module.exports.resolve = 
     extensions: ['*', '.js', '.jsx', '.vue'],

    alias: 
         'vue$': 'vue/dist/vue.common.js'
    
;

我试图用 esm 替换 common,没有帮助。

我还应该做什么?

【问题讨论】:

【参考方案1】:

您在单个文件组件中的 html 需要包含在 template 标记中。

<template>
  <div>
    <header>
      <div class="page-logo">Foo.com</div>
    </header>
    <nav>
      <ul class="nav">
        <li>My Account</li>
        <li>Log In</li>
        <li>Log Out</li>
        <li>Sign Up</li>
       </ul>
    </nav>
  </div>
<template>

【讨论】:

嗨,谢谢,它可以工作,但你知道,模板标签内不能有两个根元素,你需要用div包装它们,我知道当我得到添加template 标签时出错 @NatiV 没错!我将在答案中添加一个 div。我应该抓住那个 /facepalm

以上是关于[Vue 警告]:无法挂载组件:未定义模板或渲染函数。错误的主要内容,如果未能解决你的问题,请参考以下文章

[Vue 警告]:无法挂载组件:未定义模板或渲染函数

[Vue 警告]:无法挂载组件:Vue CLI 4 中未定义模板或渲染函数

[Vue 警告]:无法挂载组件:未定义模板或渲染函数。 -vue-simple-uploader

构建 Vue 项目时出现错误“无法安装组件:未定义模板或渲染函数”

Laravel 6 + Vue.js 无法挂载组件:未定义模板或渲染函数

Vue警告:无法安装组件:未定义模板或渲染功能