当前位置: 首页 > news >正文

Vue3之路由认识

回顾:
原来的vue2路由是通过this. r o u t e 和 t h i s . route和this. routethis.router来控制的。现在vue3有所变化,useRoute相当于以前的this. r o u t e ,而 u s e R o u t e r 相当于 t h i s . route,而useRouter相当于this. route,而useRouter相当于this.router

一、 路由搭建

1. 安装依赖并新建router.js进行路由配置

注: 可以采用路由抛出的形式,按模块进行引用

npm install vue-router@4

router.js

import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
import featureManage from '@/router/featureManage'const routes: Array<RouteRecordRaw> = [// 模块导入的路由...featureManage,
]
const router = createRouter({
//  初始化路由配置history: createWebHashHistory(),routes,
})
export default router

/router/featureManage.js

export default [{path: '/featureList',name: 'featureList',component: () => import('@/views/featureList/Index.vue'),},
]

main.js

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
// 引入路由
createApp(App).use(router).use(MTD).mount('#app')

二、路由之间的通信

useRouter 的用法

在前端开发中,我们经常需要程序处理用户的路由导航,这时候就需要用到 useRouter。它是一个用于获取当前路由实例的函数,我们可以调用这个函数来获取路由实例,然后进行路由导航。

useRoute 的用法

除了需要导航路由之外,我们还需要获取一些路由信息,这时候就需要用到 useRoute。它是一个用于获取当前路由对象的函数,我们可以调用这个函数来获取路由的参数、查询参数等信息。

1. 引入路由
import { useRouter, useRoute } from 'vue-router'
2. 定义变量
const $router = useRouter()  // 这是路由跳转的
const $route = useRoute()  // 用于接收路由参数的
3.使用

(1)路由跳转($router)

  • 显式传参query (path与query搭配),传参在url地址栏上显示

    方式一:

    $router.push('/add?name=12&age=12') // add/是要跳转的路由  name、age是参数
    

    方式二:

    $router.push({path: '/add', query: {name: "12",age: 12
    }})
    

    显示query在浏览器的url上,如果你直接通过字符串的方式去取,可能会涉及转码等问题,当然useRoute将这些都处理好了,所以还是推荐通过useRoute.query去取显式路由的参数

  • 隐式传参params(params与name搭配)

    注意:

    隐式params在刷新后可能会消失,我们可以在它存在的时候存如缓存中,如localstorage
    隐式params比显式query相对而言更安全,不会将参数直接暴露给用户

    (2)获取参数($route)

    const name = $route.query.name  // 获取路由的name参数值
    const age = $route.query.age  // 获取路由的age参数值
    // 或者如果name和params搭配的话,可通过params获取参数
    // $route.params
    

三、总结

useRouter 和 useRoute 是 Vue.js 3.2 中新增的两个用于路由管理的 Composition API。 useRouter 用于获取路由实例。而 useRoute 用于获取当前路由对象。使用这两个 API,我们可以更加方便地管理前端路由,提高开发效率。

http://www.lryc.cn/news/107455.html

相关文章:

  • P1775 石子合并(弱化版)(内附封面)
  • jmeter之接口测试(http接口测试)
  • webpack基础知识二:说说webpack的构建流程?
  • PHP使用PhpSpreadsheet实现导出Excel时带下拉框列表 (可支持三级联动)
  • Openssh高危漏洞CVE-2023-38408修复方案
  • Android中的ContentProvider
  • if device is None and isinstance(net, torch.nn.Module):的含义?
  • C++如何用OpenCV中实现图像的边缘检测和轮廓提取?
  • 智慧水务和物联网智能水表在农村供水工程中的应用
  • 机器学习笔记 - 了解 GitHub Copilot 如何通过提供自动完成式建议来帮助您编码
  • 《数据同步-NIFI系列》Nifi配置DBCPConnectionPool连接SQL Server数据库
  • HarmonyOS/OpenHarmony元服务开发-卡片使用自定义绘制能力
  • SpringBoot引入MyBatisGenerator
  • JVM面试题--实践
  • 神经网络的搭建与各层分析
  • SQL-每日一题【1174. 即时食物配送 II】
  • MySQL学习记录:第一章 DQL语言
  • redis+token+分布式锁确保接口的幂等性
  • Vue模版语法
  • 新一代开源流数据湖平台Apache Paimon入门实操-上
  • ELK 企业级日志分析系统(一)
  • 2023-08-01力扣今日二题-Hard-DPLIS优先队列-好题
  • 并发 如何创建线程 多线程
  • 亚马逊鲲鹏系统是怎么引流的?
  • 第五章 Git
  • 无涯教程-Lua - 变量声明
  • vue3学习-组件基础、深入组件
  • 原型链污染分析
  • RF PCB的9条改进型建议
  • 网络安全(黑客)自学就业