Vue3项目使用路由
安装
npm install vue-router@4
router->index.ts
import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router"
const routes: RouteRecordRaw[] = [
{
path: "/login",
name: "login",
component: () => import("../views/login/index.vue"),
children: []
}, {
-
就完成了最基础的路由定义格式
项目关联路由
src->main.ts
-
需要让项目绑定上我们定义了的路由仓库
因为项目中不仅仅只有router
需要绑定到 app
之上,所以我们对写法进行一些优化
-
让一个对象app来接收全部的
createApp(App)
所绑定的方法
视窗设置
当路由完成后还需要给路由一个视窗来展示路由内容
<template>
<router-view></router-view>
</template>
路由优化
最基础的路由使用方式会将整个
router
对象全部导出到项目当中, 此时我们可以将路由的导出方式转化成需求导出,需要什么再进行导出指定路由而不是一下子导出一整块
代码的变化
src=>main.ts
import router from './router'
/// 改变为 ///
import { initRouter } from "./router"
-
因为在优化的情况下,我们想将 路由初始化自定义方法 导出,而不是导出整个路由
-
再根据 路由初始化自定义方法 来找到相对应的路由交到组件中
app.use(router)
/// 改变为 ///
initRouter(app)
-
不再是直接使用 router ,而是通过 自定义方法-initRouter
router->index.ts
export default router;
/// 改变为 ///
export function initRouter(app: App<Element>) {
app.use(router)
}
-
导出的是路由初始化的自定义方法,而不再是直接将整个路由导出了
-
路由初始化自定义方法 需要传递进来的是整个 app参数
原因: 因为app在用路由,且这步就是将
app.use(router)
从main.ts
搬到路由中而已 -
app需要引入其来源, 类型约束
App<Element>
是组件自带的import { App } from "vue";
组件中使用路由
import { useRouter } from "vue-router"; const router = useRouter();
-
组件中使用路由是使用 vue自带方法进行导入
router.push("/user/cartList")
-
区别于 vue2 ,不再需要使用 this.$router 了
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix