vue 3 嵌套路由、路由重定向、动态路由、编程性导航、命名路由、路由守卫使用的案例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、项目目录

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、源代码

  • main.js
import {
    createApp } from 'vue'
import App from './App.vue'
import './index.css'
import './assets/css/bootstrap.min.css'
import router from './router.js'

const app = createApp(App)
//全局使用路由
app.use(router)
app.mount('#app')

  • App.vue
<template>
  <div>
    <!--路由占位符 -->
    <router-view></router-view>
  </div>
</template>

<script>
export default {
     
  name: 'App'
}
</script>

  • router.js
// 引入vue-router
import {
    createRouter, createWebHashHistory } from 'vue-router'
import Login from './components/Login_page/Login.vue'
import Home from './components/Home_page/Home.vue'
import User from './components/menus/User.vue'
import Author from './components/menus/Author.vue'
import Goods from './components/menus/Goods.vue'
import Order from './components/menus/Order.vue'
import System from './components/menus/System.vue'
import Detail from './components/menus/Detail.vue'
// 声明路由对象
const router = createRouter({
   
  history: createWebHashHistory(),
  //   声明路由规则
  routes: [
    {
    path: '/', redirect: '/login' },
    {
   
      path: '/login',
      component: Login
    },
    {
   
      path: '/home',
      redirect: '/home/user'
    },
    // 子路径不写'/'
    {
   
      path: '/home',
      component: Home,
      children: [
        {
    path: 'user', component: User },
        {
    path: 'author', component: Author },
        {
    path: 'goods', component: Goods },
        {
    path: 'order', component: Order },
        {
    path: 'system', component: System },
        // 开启传参
        {
    path: 'user/:id', component: Detail, props: true }
      ]
    }
  ]
})
// 全局路由守卫,设置访问的权限
router.beforeEach((to, from, next) => {
   
  const MyItem = localStorage.getItem('MyItem')
  //   如果访问的是'/login',直接放行
  if (to.path === '/login') return next()
  //   如果不存在MyItem则直接跳转登录页面,反之放行
  if (!MyItem) {
   
    return next('/login')
  } else {
   
    next()
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值