前言:很多网站都有页面的跳转,那具体页面跳转是怎样实现的?今天学习前端SPA(Single page Application)单页面应用,不反复请求后端资源,而是通过路由实现页面的跳转。
目录
路由的创建
main.ts导入路由
App.vue文件
展示效果
子路由
router文件导入
子路由创建
链接式
编程式
页面的跳转
展示效果
获取路由信息
路由传参方式
参数传参
路由传参
完整代码
安装vue-router
npm install vue-router
在router文件夹下创建一个index.ts文件,默认导出
路由的动态导入
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory(),
routes: [
{
path: "/home",
component: () => {
return import("@/views/Home.vue");
},
},
{
path: "/test",
component: () => {
return import('../views/Test.vue');
},
},
]
})
export default router;
其中Home.vue文件
欢迎来到MRJJ_9的路由学习之旅
Test.vue文件
这是MRJJ_9的学习记录
- step
- result
在main.ts文件中导入使用,一定要保存!!!
import router from './router'
createApp(App).use(router).mount('#app')
首页
详情
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory(),
routes: [
{
path: '/home',
component: () => {
return import('@/views/Home.vue')
}
},
{
path: '/test',
component: () => import('../views/Info/Test.vue'),
children: [
{
path: 'step',
component: () => import('../views/Info/step.vue')
},
{
path: 'result',
component: () => import('../views/Info/result.vue')
}
]
}
]
})
export default router
使用RouterLink元素
这是MRJJ_9的学习记录
测试过程
测试结果
这是MRJJ_9的学习记录
- 测试过程
- 测试结果
function backwordRouter() {
router.back()
}
function forwordRouter() {
router.forward()
}
function jumpRouter() {
router.go(-3)
}
useRoute() 当前页面的路由信息
useRouter() 整个项目的路由信息
query urlencoded参数传参 键=值&键=值
通过routerLink传参调用测试过程
通过query调用
通过Params传参
通过params调用
通过props接受参数
{path: 'result/:result1?/:result2?',
props:true,
component: () => import('../views/info/result.vue')}
result通过Params传参
- 测试通过:{{ result1 }}
- 测试不通过:{{ result2 }}
router/index.ts
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory(),
routes: [
{
path: '/home',
component: () => {
return import('@/views/Home.vue')
}
},
{
path: '/test',
component: () => import('../views/info/Test.vue'),
children: [
{
path: 'step/:name?/:stage?',
component: () => import('../views/info/step.vue')
},
{
path: 'result/:result1?/:result2?',
props:true,
component: () => import('../views/info/result.vue')
}
]
}
]
})
export default router
views/Test.vue
这是MRJJ_9的学习记录
通过routerLink传参
通过Params传参
result通过Params传参
- 测试过程
- 测试结果
- 后退
- 前进
- 跳几步
views/Step.vue
- UI测试:{{ route.query.name }}
- 接口测试:{{ route.query.stage }}
- _______________________________
- UI测试:{{ route.params.name }}
- 接口测试:{{ route.params.stage }}
views/Result.vue
- 测试通过:{{ result1 }}
- 测试不通过:{{ result2 }}