vue3 setup router的使用教程

vue3 setup router的使用教程

文章目录

  • vue3 setup router的使用教程
    • 1. 安装
    • 2. 使用(创建路由实例)
    • 3. 路由跳转
      • 3.1 通过router-link标签跳转
      • 3.2 通过js代码跳转
    • 4. 接收参数
      • 4.1 通过query接收参数
      • 4.2 通过params接收参数
    • 5. 路由守卫
      • 5.1 全局守卫
      • 5.2 路由独享守卫
      • 5.3 组件内守卫
    • 6. 路由懒加载
    • 7. 路由嵌套
    • 8. 路由别名
    • 9. 路由重定向
    • 10. 路由滚动行为
    • 11. 获取所有路由
    • 12. 获取当前路由

setup中没有this,所以我们需要引入vue-router的实例,然后通过实例来操作路由。

操作和之前有一些差异,所以这里记录一下。

1. 安装

npm install vue-router

2. 使用(创建路由实例)

import { createRouter, createWebHistory } from 'vue-router'
const routes = [{path: '/',name: 'Home',component: Home}]
const router = createRouter({/*** 这里可以配置路由模式* * @description 1. hash模式@example import { createRouter, createWebHashHistory } from 'vue-router'history: createWebHashHistory(),* @description 2. history模式* 如下:*/history: createWebHistory(),routes,
})
export default router

3. 路由跳转

请先引入router实例,接下来的操作都是基于我们创建的router实例。

import router from './router'

3.1 通过router-link标签跳转

<router-link to="/">Home</router-link>

3.2 通过js代码跳转

import router from './router'// 通过query传参
router.push({path: '/about',query: {id: 1}
})
// 通过params传参
router.push({path: '/about',params: {id: 1}
})// 或者
router.push('/about?id=1')

4. 接收参数

4.1 通过query接收参数

import router from './router'
onMounted(() => {console.log(router.currentRoute.value.query.id)
})

4.2 通过params接收参数

import router from './router'
onMounted(() => {console.log(router.currentRoute.value.params.id)
})

5. 路由守卫

5.1 全局守卫

import router from './router'
router.beforeEach((to, from, next) => {// to: 即将要进入的目标 路由对象// from: 当前导航正要离开的路由// next: 调用该方法后,才能进入下一个钩子next()
})

5.2 路由独享守卫

const routes = [{path: '/',name: 'Home',component: Home,beforeEnter: (to, from, next) => {next()}}]

5.3 组件内守卫

import { onBeforeRouteLeave, onBeforeRouteUpdate } from 'vue-router'
onBeforeRouteLeave((to, from, next) => {console.log(to, from)next()
})
onBeforeRouteUpdate((to, from, next) => {console.log(to, from)next()
})

6. 路由懒加载

const routes = [{path: '/',name: 'Home',component: () => import('../views/Home.vue')}]

7. 路由嵌套


const routes = [{path: '/',name: 'Home',component: Home,children: [{path: 'about',name: 'About',component: () => import('../views/About.vue')}]}]

8. 路由别名

const routes = [{path: '/',name: 'Home',component: Home,alias: '/home'}]

9. 路由重定向

const routes = [{path: '/',name: 'Home',component: Home,redirect: '/home'}]

10. 路由滚动行为

const router = createRouter({history: createWebHistory(),routes,scrollBehavior(to, from, savedPosition) {// to: 即将要进入的目标 路由对象// from: 当前导航正要离开的路由// savedPosition: 滚动条的坐标return {x: 0,y: 0}}
})

11. 获取所有路由

import router from '@/router';
console.log(router.options.routes)

12. 获取当前路由

import router from '@/router';
console.log(router.currentRoute.value)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/208667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云docker加速

文章目录 一、 阿里云镜像仓库配置二、配置加速1. CentOS2. Mac3. Windows注意 一、 阿里云镜像仓库配置 1.注册阿里云账号&#xff0c;并登陆到阿里云后台&#xff0c;进入控制台面板 2.进入控制台以后&#xff0c;找到左上方的三横的功能列表按钮&#xff0c;在弹出来的功能…

智能手机IC

智能手机IC 电子元器件百科 文章目录 智能手机IC前言一、智能手机IC是什么二、智能手机IC的类别三、智能手机IC应用实例四、智能手机IC作用总结前言 智能手机IC通过相互配合和协同工作,支持智能手机的各种功能和特性,如高速计算、多媒体处理、无线通信、图形渲染、传感器数据…

G1 GC基本逻辑

1 MixedGC基本过程 在G1GC中&#xff0c;有两种主要的垃圾回收过程&#xff1a;Young GC和Mixed GC。这两者都是为了回收堆内存中的垃圾对象&#xff0c;但是他们关注的区域和工作方式有所不同。 Young GC&#xff1a; Young GC主要负责回收Young Generation&#xff08;包括…

跟着GPT学设计模式之建造者模式

Builder 模式&#xff0c;中文翻译为建造者模式或者构建者模式&#xff0c;也有人叫它生成器模式。允许你创建不同口味的对象同时避免构造器污染。当一个对象可能有几种口味&#xff0c;或者一个对象的创建涉及到很多步骤时会很有用。 现实世界例子&#xff1a;想象一个角色扮…

Vue:用IDEA开发Vue,标签语法爆红问题处理

一、场景描述 我在IDEA中&#xff0c;学习Vue课程。 入门学习时&#xff0c;是在html文件中&#xff0c;script引入vue.js文件方式。 此时&#xff0c;在html文件中用v-标签&#xff0c;爆红。 二、解决办法 打开 菜单栏 File - Settings 选择 Editor - Files Type&#xf…

《每天一个Linux命令》 -- (5)通过sshkey密钥登录服务器

欢迎阅读《每天一个Linux命令》系列&#xff01;在本篇文章中&#xff0c;将介绍通过密钥生成&#xff0c;使用公钥连接管理服务器。 概念 SSH 密钥是用于安全地访问远程服务器的一种方法。SSH 密钥由一对密钥组成&#xff1a;公钥和私钥。公钥存储在远程服务器上&#xff0c;…

软件工程复习

一、题型 单项选择题 20分 填空题 10分 判断题 10分 简答题 18分 应用题 12分 综合题 30分 软件程序数据文档 软件是无形的、不可见的逻辑实体 20世纪60年代末爆发软件危机 软件危机是指软件在开发与维护过程中遇到的一系列严重的问题 …

理解 GET、POST、PATCH 和 DELETE 请求的参数传递方式

理解 GET、POST、PATCH 和 DELETE 请求的参数传递方式 本文将向您介绍在使用 GET、POST、PATCH 和 DELETE 请求时如何传递参数。通过详细解释每种请求的参数传递方式和示例代码&#xff0c;您将了解如何正确地将数据发送到服务器并与之交互。 GET 请求的参数传递方式 在 GET…

CentOS 7.9安装宝塔面板,安装gitlab服务器

docker安装方式比较慢&#xff0c;安装包1.3GB 安装后启动很慢 docker logs q18qgztxdvozdv_gitlab-ce-gitlab-1 docker ps docker exec -it q18qgztxdvozdv_gitlab-ce-gitlab-1 sh cd /etc/gitlab cat initial_root_password 软件商店安装方式&#xff0c;失败了2023.12…

clickhouse删除partition分区数据

clickhouse分布式表tencent_table_20231208_DIST&#xff0c;本地表tencent_table_20231208_local&#xff1b; 30台clickhouse存储服务器&#xff1b; 本地表&#xff1a;tencent_table_20231208_local CREATE TABLE tencent_sz.tencent_table_20231208_local (id Int64 DEFA…

hook其他调试技巧

输出堆栈信息 通过 android.util.Log 输出当前线程的堆栈跟踪信息。 function showStacks() {Java.perform(function () {console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new() )); }) } 可以在需要的…

机器学习--稀疏学习

前置知识&#xff1a; 通常学习一次模型的过程如下&#xff1a;我们普遍为了获取更好的模型效果&#xff0c;直接对原始数据学习&#xff0c;会造成过拟合、需要特征提取&#xff1b; 而若特征提取完后依旧有很多特征&#xff0c;还是会容易过拟合。这时候就需要特征降维和特…

[leetcode 前缀和]

525. 连续数组 M :::details 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组&#xff0c;并返回该子数组的长度。 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。示例 2: 输入: nums [0,1,0] 输出: …

笙默考试管理系统-MyExamTest----codemirror(48)

笙默考试管理系统-MyExamTest----codemirror&#xff08;48&#xff09; 目录 笙默考试管理系统-MyExamTest----codemirror&#xff08;48&#xff09; 一、 笙默考试管理系统-MyExamTest----codemirror 二、 笙默考试管理系统-MyExamTest----codemirror 三、 笙默考试管…

C/C++端口复用SO_REUSEADDR(setsockopt参数),test ok

端口复用最常用的用途应该是防止服务器重启时之前绑定的端口还未释放或者程序突然退出而系统没有释放端口。这种情况下如果设定了端口复用&#xff0c;则新启动的服务器进程可以直接绑定端口。如果没有设定端口复用&#xff0c;绑定会失败&#xff0c;提示ADDR已经在使用中——…

前端学习--React(5)

一、useReducer 管理相对复杂的状态数据 定义一个reducer函数&#xff0c;根据action值的不同返回不同的状态 在组件中调用useReducer并传入reducer函数和状态的初始值 事件发生时&#xff0c;通过dispatch函数分派一个对象&#xff0c;即通知reducer具体返回哪个状态对应的操…

STM32 寄存器配置笔记——USART DMA发送

一、DMA介绍 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传 输。无须 CPU 干预&#xff0c;数据可以通过 DMA 快速地移动&#xff0c;这就节省了 CPU 的资源来做其他操作。当产品对于时序要求较严格时&#xff0c;外设使用DMA的方式能够减…

深入了解Java 8日期时间新玩法:DateTimeFormatter与ZoneOffset的使用

推荐语 在这篇文章中&#xff0c;我们将深入探讨Java中的DateTimeFormatter和ZoneOffset类的功能和使用方法。这些类是在Java 8中引入的新的日期时间API的一部分&#xff0c;它们为我们提供了更灵活、更易用的日期和时间处理能力。尽管这些类在Java 8中已经出现&#xff0c;但…

ELK(六)—Filebeat安装部署

目录 一、介绍1.1特点1.2使用原因1.3结构图1.4工作流程 二、安装部署2.1下载2.2启动2.3监控日志文件2.4自定义字段 三、连接Elasticsearch四、工作原理 一、介绍 Filebeat是一个轻量级的日志和文件数据收集器&#xff0c;属于Elastic Stack&#xff08;ELK Stack&#xff09;中…

近期Chrome浏览器 不知哪个版本升级后原先http强制跳转到https,导致服务端302强制跳转到http也没反应

关于Chrome更新http强制跳转到https解决方法 近期Chrome浏览器 不知哪个版本升级后原先http强制跳转到https&#xff0c;导致服务端302强制跳转到http也没反应一、F12检查加载的Response Headers中有没有Non-Authoritative-Reason二、找了资料后得到解决方案&#xff1a;三、找…