先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
正文
//去首页
// 在函数中,通过组件实例对象下的$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
// 在进入前做一些事
// to:要去的路由
// from:来的路由
// next:放行,默认参数是false
//上面把账号密码放到window这里也可以访问到
router.beforeEach((to,from,next)=>{
if(to.name !=='Login'){//验证是否登录
if(window.uname && window.upass){
next();
}else{
alert('请先登录')
next('/Login')
}
}
next();
})
// 全局的后置
// to:要去跳转的路由
// from:来的路由
router.afterEach((to,from)=>{
console.log('欢迎'+window.uname);
})
export default router
About.vue
<template>
<div class="about">
<h1>about</h1>
<button @click="toA">A</button>
<button @click="toB">B</button>
<div style="border:2px red solid">
<router-view></router-view>
</div>
</div>
</template>
<script>
export default {
name: "About",
data() {
return {
msg: "这是组件的路由守卫",
};
},
methods: {
toA(){
this.$router.push('/about/a')
},
toB(){
this.$router.push('/about/b')
},
},
// 组件内的路由守卫
// beforeRouteEnter相当于生命周期的beforeCreate
beforeRouteEnter(to, from, next) {
// 不能获取组件实例
// 当守卫执行前,组件实例还未创建
next();
},
beforeRouteLeave(to, from, next) {
// 导航离开组件的时候对应路由调用
// 可以访问组件实例
// console.log(this.msg);
next();
},
beforeRouteUpdate(to, from, next) {
// 当前路由改变,但是该组件被复用时才触发
// 在子路由a/b之间跳转的时候才会触发
next();
},
};
</script>
写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。**
需要完整版PDF学习资源私我
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-4OuNq9uz-1713417864162)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!