Vue中router-view无法显示

如果你存在:

  1. 代码没报错,运行成功,但是index.js中router挂接的内容无法显示,
  2. 没有犯书写错误,routes 和 component 没有写错,
  3. 在浏览器中检查,App.vue中对应的 <router-view>为空

那么建议你接着看,首先,正确的结果:

//App.vue中
<template>
  <div id="app">
//关键是 router-view 能否成功渲染
    <router-view></router-view>

    <div>
      <p>
        If Element is successfully added to this project, you'll see an
        <code v-text="'<el-button>'"></code>
        below
      </p>
      <el-button>el-button</el-button>
    </div>

  </div>
</template>

<script>

export default {
  name: 'app',
  components: {

  }
}
</script>
//index.js文件

import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/main/HomeView.vue'
import Layout from '../views/LayoutView.vue'

Vue.use(VueRouter)

//1.这里是routes,指定路径和成员 
const routes = [
  {
    path: '/',
    name: 'Layout',
    
    //以下的 component(这是对的) 千万注意,不要写成 components(这是错的)
    component: Layout,
    children: [
      {
        path: '',
        name: 'Home',
        component: HomeView,
        meta: {
          isLogin: true
        }
      },
      {
        path: 'params',
        name: 'params',
        component: () => import('../views/main/ParamsView.vue'),
        meta: {
          isLogin: true
        }
      },
      {
        path: 'ad',
        name: 'ADclassify',
        component: () => import('../views/main/ADClassify.vue'),
        meta: {
          isLogin: true
        }
      },
      {
        path: 'product',
        name: 'product',
        component: () => import('../views/main/ProductView.vue'),
        meta: {
          isLogin: true
        }
      }
    ]
  },
  {
    path: '/login',
    name: 'Login',
    component: () => import('../views/LoginView.vue'),
    meta: {
      isLogin: true
    }
  }
]
//2.这里是router,是一个VueRouter对象
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
//3.这里是routes,对应1中指定的内容
})

export default router

以上,没什么问题的话,可以看到

 App.vue中对应的 <router-view>为是有值的

后来我导入在main.js中了一个js文件

//main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import './plugins/element.js'
import './assets/css/common.css'

//导入了这个文件,之后就看不见 router-view 渲染的内容了
// import './router/permission.js'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

这里,现在我还是不知道 permission.js 为什么会导致router-view不能渲染

//permission.js
import router from './index'

router.beforeEach((to, from, next) => {
  if (to.meta.isLogin) {
    const token = false
    if (token) {
      next()
    } else {
      next({
        name: 'Login'
      })
    }
  } else {
    next()
  }
})

总的来说:Vue中router-view无法显示可能是导入了什么不合适的文件导致

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 可能的原因有很多,但以下是一些常见的解决方法: 1. 确保在 Vue3 正确地安装了路由器,并正确配置了路由表。 2. 检查您是否正确使用了 `<router-view>`,并且它在视图正确地放置和包围。 3. 确认您的路由表的路径与您在视图使用的路径相匹配,确保路由表的所有路径都包含在根路径下。 4. 检查您是否在管理视图(例如使用 `v-show` 或 `v-if`)时将 `<router-view>` 内嵌在其他标记,这可能会导致问题。 如果您尝试了所有这些解决方案但仍然无法解决问题,请考虑分享您的代码或详细的错误信息以获取更好的帮助。 ### 回答2: 在Vue 3使用Vue Router时,如果router-view未正常显示,可能是以下原因导致的: 1. Vue Router未正确安装:必须在Vue实例安装VueRouter插件。需要在main.js执行如下操作: ``` import { createApp } from 'vue' import { createRouter, createWebHistory } from 'vue-router' import App from './App.vue' const router = createRouter({ history: createWebHistory(), routes: [ // 路由配置 ] }) createApp(App).use(router).mount('#app') ``` 2. 缺少路由配置:在创建Vue Router实例时需要定义路由配置。路由配置应该包含至少一个路由规则。 ``` const router = createRouter({ routes:[ { path: '/home', component: Home } ] }) ``` 3. 没有使用router-view标签:需要在组件template使用router-view标签以便Vue Router渲染匹配路由的组件。 ``` <template> <div> <h1>Hello World</h1> <router-view></router-view> </div> </template> ``` 如果出现上述问题,请逐一排查各种可能性,一般情况下只要按照规范写就能解决问题。 ### 回答3: 在使用 Vue3 的时候,如果 router-view显示,首先需要检查以下几个方面: 1. 路由配置是否正确:检查路由配置是否正确,包括路由路径、组件路径、路由名称等。可以通过在浏览器输入路由路径来检查路由是否正确。 2. index.html 文件是否引入了 Vue Router:在使用 Vue Router 时,需要在 index.html 文件引入 Vue Router。可以在元素检查工具检查 head 标签是否有以下代码: ```html <script src="https://unpkg.com/vue-router@next"></script> ``` 3. 是否安装了 Vue Router:在使用 Vue Router 时,需要先安装 Vue Router。可以在项目根目录执行以下命令进行安装: ``` npm install vue-router@next ``` 4. 是否在 main.js 文件注册了 Vue Router:在 main.js 文件需要注册 Vue Router,可以通过以下代码进行注册: ```javascript import { createApp } from 'vue' import App from './App.vue' import router from './router' const app = createApp(App) app.use(router) app.mount('#app') ``` 其router 表示引入的 Vue Router 实例。 5. 是否在 App.vue 文件使用了 router-view:在 App.vue 文件需要使用 router-view 组件来渲染路由组件。可以在 App.vue 文件添加以下代码: ```html <router-view></router-view> ``` 6. 是否在路由组件使用了 router-link:如果需要使用路由链接跳转,可以在路由组件使用 router-link 组件。可以在路由组件添加以下代码: ```html <router-link to="/path">跳转</router-link> ``` 以上是一些常见的问题,如果仍然无法解决问题,请检查是否有报错信息,并尝试在网上查找相关解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值