Vue-Router路由所有相关方法讲解(全),实战教学含登录拦截,万字长文,建议收藏_router方法

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

import About from ‘…/components/About’
// 1.通过Vue.use(插件),安装插件
Vue.use(Router)

// export default(导出) 将Router对象传入到vue实例
export default new Router({
// 2.创建Router对象
// 配置路由和组件之间的映射关系
// routes是固定写法
routes: [
{
path:‘’,
// 重定向
redirect:‘/home’
},
{
// 定义路径
path: ‘/home’,
name: ‘HelloWorld’,
// component显示
component: Home
},
{
path:‘/about’,
component:About //组件名
},
],
mode:‘history’,
// 全局配置激活路由的class类名,处与活跃(动态)就会用上这个类名
linkActiveClass:‘active’
})


## 动态传参+编程式导航


路由路径后加/:id就可以变成动态路由



#### App.vue



<!-- 增加了两个到user的导航,使用不同的to -->
<!-- <router-link to="/user/1" tag="button">1</router-link>
<router-link to="/user/2" tag="button">2</router-link> -->

<!-- 动态路由 -->
<!-- <router-link :to="'/user/'+user1" tag="button">1</router-link>
<router-link :to="'/user/'+user2" tag="button">2</router-link> -->

<!-- 编程式导航,点击触发事件函数 -->
<button @click="toHome">首页</button>
<button @click="toUser">用户</button>
<router-view></router-view>

export default {
name: ‘App’,
data() {
return {
user1:‘一’,
user2:‘二’
}
},
components: {
},
methods: {
toHome(){
//去首页
// 在函数中,通过组件实例对象下的 r o u t e r , 获取路由对象,然后 p u s h 到要跳转的路由 / / t h i s . router,获取路由对象,然后push到要跳转的路由 // this. router,获取路由对象,然后push到要跳转的路由//this.router.push(‘/home’)//祖父串的方式进行跳转
// this.$router.push({path:‘/home’})//以对象的方式跳转

  this.$router.replace('/home')//replace没历史记录
},
toUser(){
  //去用户
  this.$router.push('/user/'+this.user2)
}

},
}


#### user.vue组件



用户组件

欢迎 {{uname}} 来到用户页面

//输出一或二切换
输出名字:{{$route.params.id}}
```

嵌套路由

页面中使用this.$route:获取活跃的组件;

this.$router:获取router整个路由

//配置路由的相关信息
import Vue from 'vue'

import Router from 'vue-router'

// 1.通过vue.use安装插件
Vue.use(Router);

// 引用组件
import Home from '../components/Home.vue'
import User from '../components/User.vue'
import News from '../components/News.vue'
import Msg from '../components/Msg.vue'

// 配置路由和组件之间的引用关系
const routes =[
  {
    path:'/',
    // 重定向redirect
    redirect:'/home'
  },
  {
    path:'/home',
    component:Home ,
    // 使用嵌套路由用children属性
    children:[
      {
        path:'/home',
        redirect:'/home/news'
      },
      {//子路由加斜杠会被当作根路径
        path:'news',
        component:News
      },
      {
        path:'msg',
        component:Msg
      },
    ]
  },
  {
    path:'/user/:id',
    component:User 
  },
]

// 创建vue-router对象
const router = new Router({
  routes,
  // 没历史
  mode:'history',
  linkActiveClass:'active'
})

// 3.把router导出给vue实例
export default router

// $route:指向活跃的组件
// $router:指向router整个路由

路由传参,懒加载

router的index.js
/配置路由的相关信息
import Vue from 'vue'

import Router from 'vue-router'

// 1.通过vue.use安装插件
Vue.use(Router);

// 懒加载
const User = ()=> import('../views/User.vue')
const Info = ()=> import('../views/info.vue')
const routes =[
  // {
  //   path:'/home',
  //   name:'Home',//命名路由
  //   component:Home 
  // },
  {
    // 配置动态路由
    path:'/user/:id',
    name:'User',
    // 懒加载
    component:User
  },
  {
    path:'/info',
    name:'Info',
    component:Info
  },
]

const router = new Router({
  routes,
  // 没历史
  mode:'history',
  // linkActiveClass:'active'
})

// 3.把router导出给vue实例
export default router
Info组件
<template>
  <div id="info">
    <h2>这是信息组件</h2>
    //$route接收参数
    <h3>姓名:{{$route.query.name}}</h3>
    <h3>年龄:{{$route.query.age}}</h3>
  </div>
</template>
User组件
<template>
  <div id="user">
<h2>用户信息</h2>
<!-- 取值用$route -->
//页面中有两个params.id,点击谁就显示哪个id
<h3>用户编号{{$route.params.id}}</h3>
  </div>
</template>
App.vue
<template>
  <div id="app">
    <router-link to="/user/2021">user</router-link>|
    <router-link to="/info">info</router-link>
        <!-- 编程式导航 -->
    <button @click="toUser">user</button>
    <hr />
    
    <!-- 用path -->
    <!-- <router-link :to="{path:'/user/'+userId}">user--path</router-link><br> -->

    <!-- 用name,params传参 -->
    <router-link :to="{name:'User',params:{id:userId}}">user--name</router-link>

    <div>
      <!-- 通过query传参,      /info?name=rh&age=22&sex=男 -->
      <router-link :to="{path:'/info',query:{name:'rh',age:22,sex:'男'}}">info-path</router-link>
      <!-- 编程式导航,/info?name=有意&age=22 -->
      <button @click="toInfo">info</button>

    </div>
    <hr>
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
      userId: '20211',
    };
  },
  methods: {
    // 路由传参:
      //  query和path配合
      // params和name配合
      // name:命名路由
    toUser() {
      // params传参
      this.$router.push({ name: "User", params: { id: "567" } });
    },
    toInfo(){
      // 没历史记录
      //$router传参
      this.$router.replace({name:'Info',
      query:{
        name:'有意',
        age:22,
      }})
    }
  },
};
</script>

守卫钩子(全局+独享+组件内的守卫)

登录页
<template>
  <div id="login">
    <h3>登录</h3>
    账号:<input type="text" name="" id="" v-model="userName" /> 
    密码:<input
      type="text"
      v-model="userPass"
    />
    <button @click="login">登录</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      userName: "",
      userPass: "",
    };
  },

  methods: {
    login() {
      // 通过window对象给uname和upass赋值;
      var name = window.uname = "admin";
      var pass = window.upass = "123";
      if (this.userName == name && this.userPass == pass) {
        alert("登录成功");
        // 放行后跳转到首页
        this.$router.replace("/");
      }else{
        alert('账号不对')
      }
    },
  },
};
</script>
路由
//配置路由的相关信息
import Vue from 'vue'
import Router from 'vue-router'
// 1.通过vue.use安装插件
Vue.use(Router);
// 懒加载
const User = ()=> import('../views/User.vue')
const Info = ()=> import('../views/info.vue')
const Login = ()=> import('../views/Login.vue')
const routes =[
  {
    // 配置动态路由
    path:'/user/:id',
    name:'User',
    // 懒加载
    component:User,
    // 独享路由守卫
    beforeEnter(to, from, next){
      next()
    }
  },
  {
    path:'/info',
    name:'Info',
    component:Info
  },
  {
    path:'/Login',
    name:'Login',
    component:Login
  },
]

const router = new Router({
  routes,
  // 没历史
  mode:'history',
  // linkActiveClass:'active'
})

// 全局前置钩子:beforeEach
// 在进入前做一些事


### 给大家的福利


**零基础入门**


对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)


同时每个成长路线对应的板块都有配套的视频提供:


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)


因篇幅有限,仅展示部分资料


网络安全面试题


![](https://img-blog.csdnimg.cn/img_convert/80674985176a4889f7bb130756893764.png)


绿盟护网行动


![](https://img-blog.csdnimg.cn/img_convert/9f3395407120bb0e1b5bf17bb6b6c743.png)


还有大家最喜欢的黑客技术


![](https://img-blog.csdnimg.cn/img_convert/5912337446dee53639406fead3d3f03c.jpeg)


**网络安全源码合集+工具包**


![](https://img-blog.csdnimg.cn/img_convert/5072ce807750c7ec721c2501c29cb7d5.png)


![](https://img-blog.csdnimg.cn/img_convert/4a5f4281817dc4613353c120c9543810.png)

**所有资料共282G**,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
![img](https://img-blog.csdnimg.cn/img_convert/3f50f8a75370378e2b136517d22b4d21.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

](https://img-blog.csdnimg.cn/img_convert/5072ce807750c7ec721c2501c29cb7d5.png)


![](https://img-blog.csdnimg.cn/img_convert/4a5f4281817dc4613353c120c9543810.png)

**所有资料共282G**,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
[外链图片转存中...(img-LJkWcBwB-1713417901108)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值