Vue-Router使用

一时失言乱红尘 2024-05-07 22:25 131阅读 0赞

1.安装

  1. npm install vue-router@4

24f5b44adea243a3bc72fbba63de96c6.png

2. 添加路由

新建router文件夹,新建文件 index.ts

  1. import { createRouter, createWebHashHistory,createWebHistory} from "vue-router";
  2. const routes = [
  3. {
  4. path: '/login',
  5. component: () => import("../views/Login.vue")
  6. },
  7. {
  8. path: '/',
  9. component: () => import("../views/Index.vue")
  10. }
  11. ]
  12. const router = createRouter({
  13. // history: createWebHashHistory('/'),
  14. history: createWebHistory(),
  15. routes
  16. })
  17. export default router

4a77955c3c694c8094bff41abc225b94.png

3. 在main.ts文件加入路由

  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. //加入路由
  4. import router from './router/index';
  5. //并通过use,使用路由
  6. createApp(App).use(router).mount('#app')

4.在App.vue 添加导航,并使用router-view

  1. <template>
  2. <router-link to="/" >首页</router-link> <br/>
  3. <RouterLink to="/login">登录页面</RouterLink>
  4. <hr/>
  5. <router-view></router-view>
  6. </template>

5. 查看效果

a65a444cb6d147a6bcda272aa6128b80.png

6.扩展

createWebHistory路由模式路径不带#号:
const router = createRouter({ history: createWebHistory(), routes});

createWebHashHistory路由模式路径带#号:
const router = createRouter({ history: createWebHashHistory(), routes});

7.路由全局前置守卫

router.beforeEach是一个全局前置守卫,用于在路由导航触发前进行一些权限校验或提示。

其定义式:

  1. router.beforeEach((to, from, next) => {
  2. // ...
  3. })

TypeScript

它接受三个参数:

  • to:即将要进入的目标路由对象
  • from:当前导航正要离开的路由
  • next:调用该方法后才能进入下一个钩子。next() 直接进入下一个钩子,next(false) 中断当前的导航。next(‘/‘) 或者 next({ path: ‘/‘ }) 则会进入一个不同的地址。例如,我们可以在全局前置守卫中实现登录校验:

    router.beforeEach((to, from, next) => {

    1. const store = useStore1()
    2. if (to.path == "/login") { // 判断该路由是否需要登录权限
    3. next()
    4. } else {
    5. if (store.name != "") { // 判断用户是否已登录
    6. next()
    7. } else {
    8. next('/login') // 未登录则跳转到登录页
    9. }
    10. }

    })

发表评论

表情:
评论列表 (有 0 条评论,131人围观)

还没有评论,来说两句吧...

相关阅读

    相关 VueRouter路由嵌套

    1. 前言 本小节我们介绍如何嵌套使用 VueRouter。嵌套路由在日常的开发中非常常见,如何定义和使用嵌套路由是本节的重点。同学们在学完本节课程之后需要自己多尝试配置

    相关 VueRouter路由传参

    1. 前言 本小节我们介绍 VueRouter 路由组件传参。包括 params 传参、query 传参的两种方式。路由传参的知识点非常重要,在日常开发中,我们经常会通过

    相关 vueRouter4.0+ts

    准备工作 需要了解的接口 官方提供的路由对象数据类型 > RouteRecordRaw 自定义定义路由对象数据类型 // Omit 删除指定类型的ke