vue3 + ts 项目实站 【二】 vue-router 安装. (后台管理系统)

1 进入项目目录 ,安装vue-router

npm i vue-router@4

安装后,可以package.json中查看 vue-router 的版本
在这里插入图片描述

2 最简单的vue-router 实现

2.1 先制作两个页面组件。(用于route 的示例组件)
// src/page_demo/A.vue 

<template>
  <!--这里展示模版 内容-->
  这里是A.vue 的内容
</template>

<script setup lang="ts">
</script>

<style lang="scss" scoped>

</style>

// src/page_demo/B.vue
<template>
  <!--这里展示模版 内容-->
  这里是B.vue 的内容
</template>

<script setup lang="ts">
</script>

<style lang="scss" scoped>

</style>

2.2 在src 目录下,创建 router/router.ts
import {createRouter, createWebHashHistory, RouteRecordRaw} from "vue-router";

const routes:Array<RouteRecordRaw> = [
     {
        path: '/a',
        name: 'a',
        component:() => import('../page_demo/A.vue'),
     },
    {
        path: '/b',
        name: 'b',
        component:() => import('../page_demo/B.vue'),
    },
]

const  router = createRouter({
    history:createWebHashHistory(),
    routes :routes
})
export default router

**这里先最简实现,体验下route的效果即可, 子菜单 ,权限等先略过
后续会一直秉承两个原则 ,
1 如无必要,不瞎折腾
2 持续演化
**

2.3 修改 main.ts 引入vue-router 插件
...  
import router  from "./router/router";
// 加上 .use(router)
createApp(App).use(router).mount('#app')

这时,访问页面时,地址会发生如下变化。
在这里插入图片描述

2.4 修改app.vue 写route 例子。
//将template 进行修改
<template>
  <router-link to="/a">访问A</router-link> <br/>
  <router-link to="/b">访问B</router-link> <br/>
  <router-view></router-view>
</template>

效果如图:
在这里插入图片描述
在这里插入图片描述

3 一些很小的优化。

3.1 调整一 设置默认路由
#在route.ts  加上这段 ,当路由到 / 时,会redirect 至 /a
....
    {
        path: '/',
        name: 'default',
            redirect: '/a',
    },
3.2 设置路径别名

意图:
在 router ts 中,存在
component:() => import(‘…/page_demo/A.vue’),
后续当项目越来越大时,引入路径,可能较多,使用别名进行替代,将更容易维护和理解

//1进入项目目录。
npm install @types/node --save-dev

// 2 修改 vite.config.js
import path from "path";


// https://vitejs.dev/config/
export default defineConfig({
  resolve:{
    alias:{
      "@":path.resolve(__dirname, "src"),
      "com":path.resolve(__dirname, "components"),
    }
  },
  ...
})

//3 修改 route.ts
     {
        path: '/a',
        name: 'a',
        component:() => import('@/page_demo/A.vue'),
     },
    {
        path: '/b',
        name: 'b',
        component:() => import('@/page_demo/B.vue'),
    },

这样,后续可以用 @ 来替代 src 目录。代码更简洁

3.3 一些代码重构小技巧。

// 写法1 
 component:() => import('@/page_demo/A.vue'), 是一种简写方式
也可以写成
//写法2 
const A = import('@/page_demo/A.vue');
     	...
        component:() => A,

个人偏好,用写法1,更简洁,

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值