先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
/* 实例化Vue对象中的data参数 */
data:{
name:“ccy”,
job:“web开发”,
personalBlobTag:“个人博客首页”
}
{{ greeting() }}
Name:{{name}}
Job:{{job}}
效果:变量personalBlobTag被解析成html代码并渲染
v-model:双向绑定
通常一方输入,另一方显示,两者内容始终一致
例子: 将input标签的value值与name变量进行双向绑定:
name的初始值为“ccy”,因此input框默认值为“ccy”;当input输入了其他内容,name也发生改变。label标签负责实时显示name变量
双向绑定
效果:
事件
==
监听事件
基本使用:
-
使用v-on指令;
-
后面跟上事件名和处理函数名,处理函数可以不加括号,但传参时必须加括号
-
v-on指令可以省略成@:
加一岁
减十岁
<button @click=“reduce(1)”>减一岁
例子:
点击事件
不传参:当点击按钮时,触发add / reduce函数,让年龄加1 / 减1
event初识
加一岁
<button @click=“reduce”>减一岁
My age is {{age}}.
new Vue({
el:“#vue-app”,
data:{
age : 18
},
methods:{
add:function(){
this.age ++;
},
reduce:function(){
this.age–;
}
}
})
效果:点击“加一岁”,age就增加一岁;点击“减一岁”,age就减一岁
传参:
event初识
<button @click=“add(1)”>加一岁
<button @click=“add(10)”>加十岁
减一岁
My age is {{age}}.
new Vue({
el:“#vue-app”,
data:{
age : 18
},
methods:{
add:function(value){
this.age +=value;
},
reduce:function(){
this.age–;
}
}
})
效果:
鼠标事件
event初识
{{x}},{{y}}
new Vue({
el:“#vue-app”,
data:{
x:0,
y:0
},
methods:{
showXY:function(event){
this.x = event.offsetX;
this.y = event.offsetY;
}
}
})
效果:鼠标在div#show区域移动,显示鼠标相对这个div的XY坐标,初始值为(0,0)
事件修饰符
常用的有:
- 阻止冒泡:.stop
- 取消默认事件:.prevent
- 只有一次生效:.once
- 事件修饰符可以串联使用,如.stop.prevent,功能叠加
例子:
取消a标签的默认事件,即点击a标签后页面没有跳转:
<a @click.prevent href=“https://blog.csdn.net/qq_43523725”> 我的csdn博客主页
按键修饰符
常用的有:
- 匹配回车触发:.enter
- alt+回车触发:.alt.enter
- 匹配空格触发:.space
例子:
event初识
<input type=“text” @keyup.enter=“logName”>
<input type=“text” @keyup.enter=“logAge”>
/* methods部分代码 */
logName:function(){
console.log(“姓名已输入完成!”)
},
logAge:function(){
console.log(“年龄已输入完成!”)
}
效果:
输入第一个input框,键盘敲击回车键后,触发logName函数,控制台输出“姓名已输入完成!”,
输入第二个input框,键盘敲击回车键后,触发logAge函数,控制台输出“年龄已输入完成!”
动态绑定class和style
===============
绑定class
对象语法
使用v-bind指令绑定class,class的值为对象{class名:true / false}
,true时该class对应的功能生效,false时该class不生效
例子:
动态绑定CSS样式
new Vue({
el:“#vue-app”,
data:{
changeColor:true
}
})
.show {
width: 100px;
height: 100px;
background-color: red;
border: 2px solid #000;
}
.changeColor{
background-color: royalblue;
}
效果:
div.show原本的背景颜色是红色的(data中changeColor:false
)
当changeColor生效时,背景颜色为蓝色(data中changeColor:true
)
数组语法
也可以给class传一个数组,应用一个class列表,[class1,class2,…],如:
data: {
changeColor: ‘changeColor’,
addRadiusClass: ‘change-radius’
}
/* change-radius是类名,需要加上引号 */
.changeColor{
background-color: royalblue;
}
.change-radius {
border-radius: 10px;
}
效果:show、 changeColor、 change-radius均生效
还可以在数组里嵌套使用对象语法
data:{
changeColor:true,
addRadiusClass:“change-radius”
}
/* changeColor使用的是对象语法,值为布尔值
addRadiusClass使用的是数组语法,值为类名 */
效果同上:
绑定内联样式style
用v-bind指令将style与设定好的样式绑定起来,如:
动态绑定style
// 样式为:背景蓝色,圆角10px
data:{
styleObject:{
backgroundColor:“blue”,
borderRadius:“10px”
}
}
效果:
条件渲染
====
v-if指令
- v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true 值的时候被渲染
- v-els-if指令充当 v-if 的“else-if 块”,可以连续使用
- v-else指令,即不匹配前述的条件时执行操作
例子:
条件渲染
这是 A
这是 B
这是 C
Not A/B/C
data:{
type:“A”
}
效果:当前type为A,只显示”这是A“的div,其他div均不被渲染
v-show指令
当v-show指令的值为true时,显示该标签及内容
v-show指令
hello
data:{
isShow:true
}
效果:此时isShow为true,显示该标签
当isShow为false时,将该标签display:none
一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。
因此,如果需要非常频繁地切换,则使用 v-show较好;如果在运行时条件很少改变,则使用 v-if 较好。
列表渲染
====
v-for指令
遍历数组or对象or整数,将其中的值遍历出来
列表渲染
- {{ item }}
- {{ item }}
- {{ item.name }} -- {{item.summarize}}
data:{
arrItems:[“Vue”,“React”,“Angular”],
objItems:{
“name”:“ccy”,
“job”:“web开发”,
“descript”:“under studying”
},
jsonItems:[
{“name”:“Vue”,“summarize”:“渐进式JavaScript框架”},
{“name”:“React”,“summarize”:“用于构建用户界面的JavaScript库”},
{“name”:“Angular”,“summarize”:“基于TypeScript构建的开发平台”}
]
}
效果:
案例
==
效果:点击按钮,显示不同的图片
分步解析:
4张图片的展示
技术点:采用动态绑定style
专业技能
一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题
-
HTML+CSS
-
JavaScript
-
前端框架
-
前端性能优化
-
前端监控
-
模块化+项目构建
-
代码管理
-
信息安全
-
网络协议
-
浏览器
-
算法与数据结构
-
团队管理
最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。
其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等
由于文章篇幅有限,仅展示部分内容
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
atermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTIzNzI1,size_16,color_FFFFFF,t_70#pic_center)
案例
==
效果:点击按钮,显示不同的图片
分步解析:
4张图片的展示
技术点:采用动态绑定style
专业技能
一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题
-
HTML+CSS
-
JavaScript
-
前端框架
-
前端性能优化
-
前端监控
-
模块化+项目构建
-
代码管理
-
信息安全
-
网络协议
-
浏览器
-
算法与数据结构
-
团队管理
最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。
其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等
由于文章篇幅有限,仅展示部分内容
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-eqhgNLWI-1713439689055)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-