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

vue-router的使用技巧

一、安装
npm install vue-router
二、引入

main.ts引入

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'const app = createApp(App)app.use(router)
app.mount('#app')
三、定义路由文件
路由的参数

meta添加路由的其他参数

redirect: '/emit', //重定向

alias: ['/jx', '/jx1', '/jx2'],//别名

children: []//子路由

import {createRouter, createWebHistory, RouteRecordRaw} from 'vue-router'declare module 'vue-router' {interface RouteMeta {title: string}
}const routes: Array<RouteRecordRaw> = [{path: '/',name: 'component',meta: {title: '123'},component: () => import('../view/App_component.vue'),children: [{path: '/emit',components: {default: () => import('../view/App_emit.vue')}},{path: '/define',components: {aaa: () => import('../view/App_define.vue')}},{path: '/tsx',components: {default: () => import('../view/App_tsx')}}]}
]const router = createRouter({history: createWebHistory(),routes
})export default router
路由模式的原理
//createWebHashHistory
/*** 原理window.addEventListener('hashchange',(e)=>{console.log(e)})* location.hash = '/bus'*///createWebHistory
/*** 原理window.addEventListener('popstate',(e)=>{console.log(e)})* history.pushState({}, '', '/bus')*/
记录页面滚动条的位置

scrollBehavior

const router = createRouter({history: createWebHistory(),scrollBehavior: (to, from, save) => { //记录页面的滚动条位置console.log(save);if (save) {return save} else {return {top: 0}}},routes
})
四、使用
RouterLink跳转,添加replace不记录历史

RouterView显示路由对应的界面

<template><!-- <RouterLink to="/">component</RouterLink><RouterLink to="/bus">bus</RouterLink> --><!-- <RouterLink :to="{name:'component'}">component</RouterLink><RouterLink :to="{name:'bus'}">bus</RouterLink> --><!-- <div>replace 不记录历史<RouterLink replace to="/">component</RouterLink><RouterLink replace to="/bus">bus</RouterLink></div> --><RouterView></RouterView>
</template>
js跳转页面

router.push({path: '/index'})

path就是路由对应的url

router.push({name: 'index'})

name就是路由对应的name

router.push({path: '/index',query:{id:'123'}})

query传参,不需要处理路由

router.push({path: '/index',params:{id:'123'}})

params传参,需要修改路由添加对应参数

例如:path: '/index/:id/:name'

<script setup lang="ts">
import { useRouter } from 'vue-router'
const router = useRouter();
const goUrl = (url: string, name: string) => {// router.push({//   path: url// })// router.push({//   name// })//不记录历史// router.replace(url)// router.go(1); //前进// router.back(); //后退//传参// router.push({//   path: url,//   query: {//     name: 'cqs',//     age: 123//   }// })// 传参router.push({name,params: {name: 'cqs',age: 123}})
}
</script>
五、导航守卫
全局导航守卫
let whileList = ['/', '/bus'];
router.beforeEach((to, from, next) => {window.document.title = to.meta.title;if (whileList.includes(to.path)) {next()} else {router.push('/')}
})router.beforeResolve((to, from)=>{})router.afterEach((to, from) => {})
路由独享守卫
beforeEnter: (to, from) => {},

组件内守卫

beforeRouteEnter(to, from) {// 不能获取组件实例},beforeRouteUpdate(to, from) {// 组件已经挂载好了,导航守卫可以访问组件实例},beforeRouteLeave(to, from) {// 在导航离开渲染该组件的对应路由时调用,可以访问组件实例},

相关文章:

vue-router的使用技巧

一、安装 npm install vue-router 二、引入 main.ts引入 import { createApp } from vue import App from ./App.vue import router from ./routerconst app createApp(App)app.use(router) app.mount(#app)三、定义路由文件 路由的参数 meta添加路由的其他参数 redire…...

CV计算机视觉每日开源代码Paper with code速览-2023.11.21

点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构&#xff1a;Transformer】Multi-entity Video Transformers for Fine-Grained Video Representation Learning 论文地址&…...

人工智能对当代生活的影响

人工智能&#xff08;AI&#xff09;是指通过模拟人类智能的方式&#xff0c;使机器能够执行某些需要智能的任务。随着技术的快速发展和应用的广泛推广&#xff0c;人工智能已经深入到我们的日常生活中&#xff0c;对我们的生活和社会产生了深远的影响。本文将探讨人工智能对当…...

笔记:如何搭建一套前端监控系统?(持续更新中)

数据敏感处理 数据加密&#xff0c;对涉及用户隐私的数据做到加密防护 独立部署&#xff0c;不和其它应用共享监控系统 不采集具体数据&#xff0c;只采集用户操作数据 错误采集 Runtime Error: JS运行错误&#xff0c;可通过error监听器捕获 load Error: 资源加载错误&#x…...

在 Ubuntu 上安装最新版的 Calibre

目录 前言 方法1&#xff1a;从 Ubuntu 的仓库安装 Calibre 卸载 Calibre 方法2&#xff1a;获取最新版本的 Calibre 卸载 Calibre 结语 前言 Calibre 是一款自由开源的电子书软件。下面介绍如何在 Ubuntu Linux 上安装它。 作为电子书管理的瑞士军刀&#xff0c;Calibre …...

docker基础学习笔记

文章目录 Docker简介Linux下安装DockerDocker常用命令Docker网络Docker存储docker-composedockerfile制作镜像私有仓库镜像导入导出参考 Docker简介 定义&#xff1a;Docker是一个开源的应用容器引擎优势&#xff1a; 一键部署&#xff0c;开箱即用&#xff1a;容器使用基于im…...

Could not resolve all files for configuration ‘:app:androidJdkImage‘.

在使用./gradlew build编译项目时候遇到了该问题&#xff0c;整体错误如下: * What went wrong: Configuration cache state could not be cached: field generatedModuleFile of com.android.build.gradle.tasks.JdkImageInput bean found in field compilerArgumentProvider…...

GLP-1 , GLP-1R

-- 6VCB_GLP-1R G_protein, GLP-1 peptidea positive allosteric modulator...

【数据结构】F : 道路建设 (Ver. I)

F : 道路建设 (Ver. I) Description 有N个村庄&#xff0c;编号从1到N&#xff0c;你应该建造一些道路&#xff0c;使每个村庄都可以相互连接。 两个村A和B是相连的&#xff0c;当且仅当A和B之间有一条道路&#xff0c;或者存在一个村C使得在A和C之间有一条道路&#xff0c;并…...

flutter 无法从H5 WebView 访问摄像头和录音权限

AndroidManifest.xml需要在 中添加以下权限&#xff1a; <uses-permission android:name"android.permission.INTERNET"/> <uses-permission android:name"android.permission.CAMERA" /> <uses-permission android:name"android.per…...

electron27-react-mateos:基于electron+react18仿matePad桌面系统

基于Electron27React18ArcoDesign搭建桌面版OS管理系统。 electron-react-mateos 基于最新前端跨端技术栈electron27.xreact18arco-designzustand4sortablejs构建的一款仿制matePad界面多层级路由管理OS系统。 ElectronReactOS支持桌面多路由配置&#xff0c;新开窗口弹窗开启路…...

高精度算法总结

高精度加法 题目链接&#xff1a; https://www.acwing.com/activity/content/problem/content/825/ 代码模版&#xff1a; #include <iostream> #include <vector>using namespace std;// C A B vector<int> add(vector<int> &A, vector<…...

EMQX-5.3.1单机集群部署并基于Nginx实现负载均衡

本例单机集群部署使用三个节点&#xff0c;分别为node1、node2、node3 一、安装与配置 1 创建数据目录 mkdir -p node1/data node1/logs mkdir -p node2/data node2/logs mkdir -p mode3/data node3/logs 2 数据目录授权 chown 1000 node1/ node2/ node3/ chown 1000 n…...

电商又有大动静,又一短视频进军电商领域!

我是电商珠珠 电商近几年来发展迅速&#xff0c;截止到23年的10月26日&#xff0c;电商零售平台市场份额是淘宝市场占比的53%&#xff0c;京东为20%&#xff0c;拼多多手握15%的市场占比&#xff0c;三者合计份额已经达到了88%。 剩下的抖音、快手、苏宁也在奋力抢占更多。 …...

C语言线性表的链式存储(框架)

线性表的链式存储 线性表的顺序存储&#xff1a;用一块连续的内存空间 线性表的链式存储&#xff1a;不连续的内存空间 链表是由一系列的节点组成&#xff0c;每个节点包含两个域&#xff0c;一个是数据域&#xff0c;一个是指针域 链表的插入和删除原理 单项链表框架的搭建 …...

webpack配置完热更新之后还是会刷新整个页面

可以在webpack文档中找到有关热更新的详细信息&#xff0c;意思就是&#xff0c;开启热更新之后&#xff0c;整个页面你改了哪里&#xff0c;就只更新哪里&#xff0c;其他没变的&#xff0c;或者保存在缓存里面的内容&#xff0c;都不会改变&#xff0c;感谢很神奇&#xff01…...

2023年第六届传智杯程序设计挑战赛(个人赛)B组 赛后复盘

传智杯赛后复盘 大家好 我是寸铁&#x1f44a; 2023年第六届传智杯程序设计挑战赛&#xff08;个人赛&#xff09;B组 赛后复盘 喜欢的小伙伴可以点点关注 &#x1f49d; 1. 字符串拼接 细节&#xff1a;一定要清楚nextLine()和next()的区别 nextLine()是遇到回车会停下来 nex…...

C语言——深入理解指针(2)

目录 1. 数组名 2. 指针访问数组 3. 一维数组的传参&#xff08;本质&#xff09; 4. 冒泡排序 5. 二级指针 6. 指针数组&#xff08;指针的数组&#xff09; 7. 指针数组模拟二维数组 1. 数组名 在之前的代码中我们使用指针访问过数组的内容。 int arr[10] {1,2,3,4…...

【已解决】HBase 2.2.6 集群部署后,从节点未启动 HRegionServer

问题发现 今天搭建了 HBase 2.2.6 集群环境&#xff0c;启动之后发现&#xff0c;从节点的 HRegionServer 未启动。多次对比参数设置仍然未发现异常。而启动之前的 HBase 2.4.11 则完成正常&#xff0c;我就有点怀疑是不是 HBase 2.2.6 集群搭建有什么特殊的地方&#xff1f; …...

JVM——垃圾回收(方法区中的垃圾回收和(堆回收)自动垃圾回收)

目录 1.自动垃圾回收介绍1.C/C的内存管理2.Java的内存管理3.垃圾回收的对比 2.方法区的回收方法区的回收 – 手动触发回收 3.堆回收1.引用计数法2.可达性分析算法 1.自动垃圾回收介绍 1.C/C的内存管理 ⚫ 在C/C这类没有自动垃圾回收机制的语言中&#xff0c;一个对象如果不再…...

别再只调AE了!深入理解ISP 3A算法联动:以高通平台AEC如何影响AF与AWB为例

深入解析ISP 3A算法联动机制&#xff1a;从参数传递到系统级优化 在图像信号处理&#xff08;ISP&#xff09;的复杂世界中&#xff0c;3A算法&#xff08;自动曝光控制AEC、自动对焦AF、自动白平衡AWB&#xff09;常被视为独立运行的模块。然而&#xff0c;当我们将视角从单点…...

Qwen3.5-9B前端设计咨询师:根据需求生成UI组件代码与样式

Qwen3.5-9B前端设计咨询师&#xff1a;用自然语言生成UI组件代码 1. 为什么需要AI辅助前端开发 想象一下这样的场景&#xff1a;产品经理走过来&#xff0c;兴奋地描述着他想要的页面效果&#xff1a;"我们需要一个带渐变背景的登录卡片&#xff0c;包含邮箱密码输入框和…...

华为OD机试 - 黑白棋 - 广度优先搜索BFS(Java 新系统 200分)

华为OD机试 新系统 题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适…...

从AUC到PCOC:广告点击率预估模型校准全流程解析

从AUC到PCOC&#xff1a;广告点击率预估模型校准全流程解析 在数字营销领域&#xff0c;点击率预估模型的准确性直接影响广告投放效果和平台收益。虽然AUC指标长期以来被用作模型性能的黄金标准&#xff0c;但它仅能评估排序能力&#xff0c;无法反映预估值与实际点击概率的匹配…...

3分钟免费安装GitHub中文插件:告别英文困扰,让开发效率翻倍![特殊字符]

3分钟免费安装GitHub中文插件&#xff1a;告别英文困扰&#xff0c;让开发效率翻倍&#xff01;&#x1f680; 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/…...

HUNYUAN-MT LaTeX科研文档翻译实践:完美保留公式与图表引用

HUNYUAN-MT LaTeX科研文档翻译实践&#xff1a;完美保留公式与图表引用 写论文、投期刊&#xff0c;对很多科研工作者来说&#xff0c;翻译是个绕不过去的坎。尤其是用LaTeX写的文档&#xff0c;里面塞满了复杂的公式、交叉引用和宏命令&#xff0c;直接扔给翻译工具&#xff…...

SpringBoot 集成 JWT 实现登录认证 + 权限拦截(电商系统实战,代码可直接复制)

一、开篇引言 做前后端分离的电商管理系统&#xff0c;登录认证与权限控制是绝对的核心功能&#xff0c;也是 Java 后端面试的高频考点。你是不是也遇到过这些问题&#xff1a; 前后端分离项目&#xff0c;Session 共享困难&#xff0c;无法用传统 Session 做登录认证 不知道如…...

我为什么开始安利 Hermes Agent:它和 OpenClaw 到底有什么不一样?

如果你最近在折腾 AI Agent&#xff0c;大概率已经见过一堆“能聊天、能调工具、能接 Telegram/Discord”的项目了。问题不在于有没有&#xff0c;而在于&#xff1a;哪个真的值得长期用&#xff0c;哪个只是演示时很猛&#xff0c;落地时很折磨。 这两天我认真装了一遍 Herme…...

终极指南:Tectonic引擎中的现代字体处理技术详解

终极指南&#xff1a;Tectonic引擎中的现代字体处理技术详解 【免费下载链接】tectonic A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive. 项目地址: https://gitcode.com/gh_mirrors/te/tectonic Tectonic作为一款现代化的TeX…...

lil_tea c++ style guide巢

一、中间件是啥&#xff1f;咱用“餐厅”打个比方 想象一下&#xff0c;你的FastAPI应用是个高级餐厅。 ?? 顾客&#xff08;客户端请求&#xff09;来到门口。- 迎宾&#xff08;CORS中间件&#xff09;&#xff1a;先看你是不是从允许的街区&#xff08;域名&#xff09;来…...