当前位置:   article > 正文

Vue3 路由配置 + 路由跳转 + 路由传参(动态路由传参 + 普通路由传参)_vue3 路由跳转

vue3 路由跳转

Vue Router: Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。

目录

效果

一、介绍

 1、官方文档:https://router.vuejs.org/zh/introduction.html

2、功能:

二、准备工作

1、安装依赖包

 2、示例版本 

三、目录结构

四、使用步骤

1、新建页面(含当前页面完整示例代码)

        HomeView.vue

        AboutView.vue

        TestView.vue

2、路由配置

        main.ts

        routet/index.ts

        App.vue

五、路由跳转

1、使用 router-link 组件进行导航  + 通过传递 `to` 来指定链接

2、编程式导航

六、路由传参

1、普通路由

        1)query

        2)params

2、动态路由

3、对比普通路由和动态路由在浏览器的展现形式

 欢迎扫描下方二维码关注VX公众号


效果

一、介绍

 1、官方文档:https://router.vuejs.org/zh/introduction.html

介绍 | Vue RouterVue.js 的官方路由icon-default.png?t=N7T8https://router.vuejs.org/zh/introduction.html

2、功能:

  • 嵌套路由映射
  • 动态路由选择
  • 模块化、基于组件的路由配置
  • 路由参数、查询、通配符
  • 展示由 Vue.js 的过渡系统提供的过渡效果
  • 细致的导航控制
  • 自动激活 CSS 类的链接
  • HTML5 history 模式或 hash 模式
  • 可定制的滚动行为
  • URL 的正确编码

二、准备工作

1、安装依赖包

npm install vue-router@4

 2、示例版本 

"vue-router": "^4.2.5",


三、目录结构

  1. src
  2. │ App.vue
  3. main.ts
  4. ├─router
  5. │ index.ts
  6. └─view
  7. HomeView.vue
  8. AboutView.vue
  9. TestView.vue

四、使用步骤

1、新建页面(含当前页面完整示例代码)

        HomeView.vue
  1. <template>
  2. <div>
  3. <div>这是home页面</div>
  4. <div>
  5. <button @click="toAboutPage">跳转至about</button>
  6. </div>
  7. <div>
  8. <button @click="toTestPage">跳转至test</button>
  9. </div>
  10. </div>
  11. </template>
  12. <script setup lang="ts">
  13. import { useRouter, useRoute } from 'vue-router'
  14. const router = useRouter()
  15. const route = useRoute()
  16. function toAboutPage() {
  17. router.push({
  18. path: '/about',
  19. query: {
  20. title: '666'
  21. }
  22. })
  23. }
  24. function toTestPage() {
  25. router.push({
  26. path: '/test/' + 888,
  27. })
  28. }
  29. </script>
        AboutView.vue
  1. <template>
  2. <div>
  3. <div>这是about页面</div>
  4. <div>
  5. <button @click="toHomePage">跳转至home</button>
  6. </div>
  7. <div>
  8. <button @click="toTestPage">跳转至test</button>
  9. </div>
  10. </div>
  11. </template>
  12. <script lang="ts" setup>
  13. import { useRoute, useRouter } from 'vue-router';
  14. const router = useRouter()
  15. const route = useRoute()
  16. function toHomePage() {
  17. router.push({
  18. name: 'home',
  19. params: {
  20. title: 'about'
  21. }
  22. })
  23. }
  24. function toTestPage() {
  25. router.push({
  26. name: 'test',
  27. params: {
  28. title: 111
  29. },
  30. })
  31. }
  32. console.log(route);
  33. </script>
        TestView.vue
  1. <template>
  2. <div>
  3. <div>这是test页面</div>
  4. <button @click="toHomePage">跳转至home</button>
  5. </div>
  6. </template>
  7. <script setup lang="ts">
  8. import { useRouter, useRoute } from 'vue-router'
  9. const router = useRouter()
  10. const route = useRoute()
  11. function toHomePage() {
  12. router.push('/')
  13. }
  14. console.log(route);
  15. </script>

2、路由配置

        main.ts
  1. import { createApp } from 'vue'
  2. import { createPinia } from 'pinia'
  3. import App from './App.vue'
  4. import router from './router'
  5. const app = createApp(App)
  6. app.use(createPinia())
  7. app.use(router)
  8. app.mount('#app')
        routet/index.ts
  1. import { createRouter, createWebHistory } from 'vue-router'
  2. import HomeView from '../views/HomeView.vue'
  3. const router = createRouter({
  4. history: createWebHistory(import.meta.env.BASE_URL),
  5. routes: [
  6. {
  7. path: '/',
  8. name: 'home',
  9. component: HomeView
  10. },
  11. {
  12. path: '/about',
  13. name: 'about',
  14. component: () => import('../views/AboutView.vue')
  15. },
  16. {
  17. path: '/test',
  18. name: 'test',
  19. component: () => import('../views/TestView.vue')
  20. },
  21. ]
  22. })
  23. export default router
        App.vue
  1. <template>
  2. <nav>
  3. <RouterLink to="/">Home</RouterLink>
  4. <RouterLink to="/about">About</RouterLink>
  5. </nav>
  6. <RouterView />
  7. </template>
  8. <script setup lang="ts">
  9. import { RouterLink, RouterView } from 'vue-router'
  10. </script>

五、路由跳转

1、使用 router-link 组件进行导航  + 通过传递 `to` 来指定链接

  1. <RouterLink to="/">Home</RouterLink>
  2. <RouterLink to="/about">About</RouterLink>

2、编程式导航

  1. router.push('/') // 根页面,这里的“/”等同于home页面
  2. router.push({
  3. path: '/about',
  4. })

注:必须配置下列代码

  1. import { useRouter, useRoute } from 'vue-router'
  2. const router = useRouter()
  3. const route = useRoute()

六、路由传参

1、普通路由

        1)query
  1. router.push({
  2. path: '/about',
  3. query: {
  4. title: '666'
  5. }
  6. })
        2)params
  1. router.push({
  2. name: 'home',
  3. params: {
  4. title: 'about'
  5. }
  6. })

2、动态路由

        路由配参

  1. {
  2. path: '/test/:title',
  3. name: 'test',
  4. component: () => import('../views/TestView.vue')
  5. },

         动态传参

  1. router.push({
  2. path: '/test/' + 888,
  3. })

        接收参数

  1. console.log(route);

        打印结果

注:路由之间跳转用router,获取当前页面的路由信息用route

3、对比普通路由和动态路由在浏览器的展现形式

        1)普通路由传参 - 有问号

        2)动态路由传参 - 直接跟在地址后面

   

 欢迎扫描下方二维码关注VX公众号

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/804868
推荐阅读
相关标签
  

闽ICP备14008679号