Vue路由

news/2024/11/17 18:30:30/

vue路由

文章目录

        • vue路由
          • 1.vue-router简单使用
            • 1.1vue-router的下载
            • 1.2在main.js
            • 1.3router的配置
            • 1.4 路由的切换
            • 1.5路由指定位置的显示
          • 2.嵌套路由
            • 2.1 多级路由的配置
            • 2.2 多级路由的query传参
            • 2.3 多级路由的params传参
            • 2.4 接受路由的props参数
          • 2.编程试路由
            • 2.1 按钮的跳转
            • 2.2页面的前进与后退
            • 2.3路由缓存
          • 3.路由守卫
            • 3.1 配置前置路由守卫
            • 3.2 独享路由守卫
            • 3.3 组件内的路由守卫
          • 4.路由的两种请求模式
            • 4.1hash

1.vue-router简单使用

vue-router官网

1.1vue-router的下载
npm i vue-router@3
1.2在main.js
// 改文件是项目的入口文件// 映入vue
import Vue from 'vue'// 映入app组件
import App from './App.vue'//映入vue-rputer
import VueRouter from 'vue-router'//映入路由器
import router from './router'// 关闭vue生产提示
Vue.config.productionTip = false//应用vuerouter
Vue.use(VueRouter)// 创建vue实例
new Vue({el:"#app",render: h => h(App),router:router
}) 
1.3router的配置
//改文件用于专门创建路由import VueRouter from "vue-router";
// 映入组件
import Home from '../components/Home'
import About from '../components/About'//创建并暴露一个路由
export default new VueRouter({routes:[{path:'/home',component:Home},{path:'/about',component:About}]
})
1.4 路由的切换
<router-link to="/about">About</router-link>
<router-link to="/home">Home</router-link>
1.5路由指定位置的显示
   <!-- 指定组件展示的位置 --><router-view></router-view>

在这里插入图片描述

注意:
1.路由组件一般存放在pages组件中,普通组件存放在commopnts组件中。
2.每个zujain都有一个$router属性,存放自己的路由信息。
3.切换的路由组件一般是被销毁了

2.嵌套路由
2.1 多级路由的配置
export default new VueRouter({routes:[{path:'/home',component:Home,children:[{path:'message',component:Message},{path:'news',component:News}]},{path:'/about',component:About}]
})

在这里插入图片描述

<template><div><router-link to="/home/message">Message</router-link><router-link to="/home/news">News</router-link><router-view></router-view></div>
</template><script>
export default {name: "Home",
};
</script><style></style>

注意在home页面中需要在跳转的页面上加上/home的路径

2.2 多级路由的query传参

1.query传参

 <router-link:to="{path: '/home/message/detail',query: {id: item.id,title: item.title,},}">{{ item.title }}</router-link>

2.接受参数

在vm的route中接受父路由传递的参数

在这里插入图片描述

  <ul><li>消息id:{{ $route.query.id }}</li><li>消息标题:{{ $route.query.title }}</li></ul>
2.3 多级路由的params传参

1.params传参

<router-link :to="`/home/message/detail/${item.id}/${item.title}`">{{item.title}}</router-link>

在这里插入图片描述

2.接受参数

 <ul><li>消息id:{{ $route.params.id }}</li><li>消息标题:{{ $route.params.title }}</li></ul>
2.4 接受路由的props参数

在路由中配置全新的配置项props

 props($route){return {id:$route.query.id,title:$route.query.title}}

在这里插入图片描述
2.接受参数

  props: ["id", "title"],
2.编程试路由
2.1 按钮的跳转
  this.$router.push({name: "detail",query: {id: item.id,title: item.title,},});
  this.$router.replace({name: "detail",query: {id: item.id,title: item.title,},});

在这里插入图片描述

2.2页面的前进与后退
this.$router.back();
this.$router.forward();
this.$router.go(2) //2表示前进2步,-1表示后退一步

在这里插入图片描述

2.3路由缓存

在路由内容展示的页面的router-view加上keep-live

 <keep-alive include="news">  <!-- news为组件名 --><router-view></router-view></keep-alive>
3.路由守卫
3.1 配置前置路由守卫

1.在全局前置路由守卫中,to是即将要跳转的路由,from是来自那个路由,next是是否放行。

在这里插入图片描述

routes.beforeEach((to,from,next)=>{console.log(to,from)if(to.path==='/home/news'||to.path==='/home/message'){if(localStorage.getItem('school')==='小明'){next()}else{alert('不是小明')}}else{next()}
})

2.在route的mate中添加是否需要鉴权的条件。
在全局前置中通过判断是否需要鉴权来判断是否需要跳转。

在这里插入图片描述

在这里插入图片描述

3.2 独享路由守卫
 beforeEnter:(to,from,next)=>{console.log(to,from)if(to.path==='/home/news'||to.path==='/home/message'){if(localStorage.getItem('school')==='小明'){next()}else{alert('不是小明')}}else{next()}}

在这里插入图片描述

3.3 组件内的路由守卫
beforeRouteEnter(to, from, next) {console.log(to, from);if (to.meta.isAuth) {if (localStorage.getItem("school") === "小明") {next();} else {alert("不是小明");}} else {next();}},
4.路由的两种请求模式
4.1hash

http://localhost:8080/#/home/news
其中#后的值不会发送网络请求。


http://www.ppmy.cn/news/38537.html

相关文章

ptrace注入游戏介绍

Android系统采用的是Linux内核&#xff0c;很多Linux系统上的技术都可以应用在Android系统上&#xff0c;Android系统上ptrace注入远程进程的技术就是其中一种。本章节将对ptrace注入的完整流程进行介绍。 一、ptrace函数介绍 ptrace注入技术的核心就是ptrace函数&#xff0c…

云计算基础——云存储技术简介

云存储的种类及其合适的应用 可以把云存储分成块存储与文件存储两类。 块存储 快速更改的单一文件系统针对单一文件大量写的高性能计算&#xff08;HPC&#xff09; 文件存储 文件及内容搜寻Tier-2 NAS多文件大量写入的应用数据大量读写的应用多个使用端都希望读取同一个文…

2007-2020年上市公司数字化转型数字化无形资产占比仅计算结果

1、时间&#xff1a;2007-2020年 2、范围&#xff1a;包括3600多家公司 3、方法说明&#xff1a; 借鉴祁怀锦等&#xff08;2020&#xff09;的方法&#xff0c;根据数字化相关词频手工识别企业数字化相关无形资产占比&#xff0c;相关词频在附件中。 据企业数字化转型的定…

Java 缺失的特性:扩展方法

作者&#xff1a;周密(之叶) 什么是扩展方法 扩展方法&#xff0c;就是能够向现有类型直接“添加”方法&#xff0c;而无需创建新的派生类型、重新编译或以其他方式修改现有类型。调用扩展方法的时候&#xff0c;与调用在类型中实际定义的方法相比没有明显的差异。 为什么需…

jsp056ssm客户关系管理系统的设计与实现hsg570685程序

1&#xff0e;系统登录&#xff1a;系统登录是管理员访问系统的路口&#xff0c;设计了系统登录界面&#xff0c;包括管理员名、密码和验证码&#xff0c;然后对登录进来的管理员判断身份信息&#xff0c;判断是管理员管理员还是普通用户。 2&#xff0e;管理员管理&#xff1a…

【《C Primer Plus》读书笔记】第14章:结构和其他数据形式

【《C Primer Plus》读书笔记】第14章&#xff1a;结构和其他数据形式14.1 C 结构体定义结构结构体变量的初始化访问结构成员结构作为函数参数指向结构的指针复合字面量和结构&#xff08;C99&#xff09;伸缩型数组成员&#xff08;C99&#xff09;匿名结构&#xff08;C11&am…

Docker之Docker简介

问题&#xff1a;为什么会有docker出现 环境配置如此麻烦&#xff0c;换一台机器&#xff0c;就要重来一次&#xff0c;费力费时。很多人想到&#xff0c;能不能从根本上解决问题&#xff0c;软件可以带环境安装&#xff1f;也就是说&#xff0c;安装的时候&#xff0c;把原始…

网络安全专家最爱用的9大工具

网络安全专家&#xff0c;不是你认为的那种搞破坏的 “黑客”。网络安全专家&#xff0c;即 “ethical hackers”&#xff0c;是一群专门模拟网络安全专家攻击&#xff0c;帮助客户了解自己网络的弱点&#xff0c;并为客户提出改进建议的网络安全专家。 网络安全专家在工作中&a…