路由器视图未加载

Posted

技术标签:

【中文标题】路由器视图未加载【英文标题】:Router-view is not loading 【发布时间】:2019-06-21 16:38:25 【问题描述】:

我已将组件附加到路由器链接,但它没有加载。我在 Laravel 中使用 Vue js。 我正在使用 Laravel 和 Vue

这是我的 Laravel 刀片文件。

home.blade.php

<div id="app">
    <app-main></app-main>
</div>

AppMain.vue:

<template>
  <div>
    <router-view></router-view>
  </div>
</template>

<script>

export default

 

App.js

Vue.component('app-main', require('./components/front/common/AppMain.vue').default);
Vue.component('app-login', require('./components/auth/Login.vue'));


const routes = [
 
    path: '*', 
    component: require('./components/front/common/AppMain.vue')
,
 
    path: '/login', 
    component: require('./components/auth/Login.vue')

]

const router = new VueRouter(
   routes
)

const app = new Vue(
   el: '#app',
   router
);

错误

[Vue warn]: Failed to mount component: template or render function not defined.

found in

---> <Anonymous>
       <AppMain> at resources/js/components/front/common/AppMain.vue
         <Root>

【问题讨论】:

github.com/vuejs/vue-router/issues/713 【参考方案1】:

请尝试使用此代码,看看它是否有效。

const app = new Vue(
    router,
    el: '#app',
    render: h => h(App) //add this new line
);

【讨论】:

【参考方案2】:

您是否尝试过从 app-main 组件导入中删除“.default”?在我早期的 vue/laravel 工作中,这也让我感到震惊。我发现在顶部使用“从'../module path'导入”或“require(...)”状态更安全。我不记得这指向的是什么 javascript 规范。

【讨论】:

const routes = [ path: '/', name: 'AppMain', component: AppMain , path: '/login', name: 'Login', component: Login ] 这样给出。但是错误来了。[Vue 警告]:未知的自定义元素: - 您是否正确注册了组件?对于递归组件,请确保提供“名称”选项。【参考方案3】:

请在app.js 中尝试使用此代码。

import Vue from 'vue';
window.Vue = require('vue');

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

Vue.component('app-main',require('./components/front/common/AppMain.vue').default);
Vue.component('app-login', require('./components/auth/Login.vue'));

import appMain from './components/front/common/AppMain';
import appLogin from './components/auth/Login';


const routes = [
    
      path: '/',
      component: appMain,
      children: [
           
              path: 'login',
              component: appLogin
          
      ]
]

const router = new VueRouter(
   routes
)

const app = new Vue(
   el: '#app',
   router: router
);

【讨论】:

以上是关于路由器视图未加载的主要内容,如果未能解决你的问题,请参考以下文章

vue监听路由的变化,跳转到同一个页面时,Url改变但视图未重新加载问题

路由器视图内容未呈现

如何获取路由器未加载的组件中路由更改的当前路由参数

Vue 组件未在路由器视图中呈现

Vue路由器未加载组件

使用 angular.js 路由手动刷新时仍然出现“未找到”