声明式渲染,
当我们在页面上new一个实例,在data里面声明一个变量,在模板里面通过{{}}}去使用这个变量,就构成一个声明式渲染
组件系统:
当我们需要去使用组件系统的时候,可以去定义一个component组价
路由:
当我们使用到客户端路由的时候,我们就可以去引入vue-router插件
状态管理:
当我们的企业足够大,我们就会用到状态管理,
多个组件之间是不能通信的,但是我们页面与页面之间是需要共用我们用户的状态,这个时候vuex就起到作用,他把我们的一些用户信息去抽离出来变成一个公共的部分,让所有的组件都可以去调用
构建工具
grunt打包合并,js版本号的替换,压缩
vue里面代码现在不仅仅有es5的还有es6,es7, 一般用webpack去构建,他可以对我们的es6,es7语法进行解码,转换成es5,以及我们的.vue 文件需要用一些vue-loader插件去加载,sass,less的编译,很多一系列的插件,从而打包成我们生产的版本,形成了一个渐进式的框架。
数据驱动
组件化
数据驱动
在传统jquery开发过程中,在js里面去绑定dom的一个click事件,我们在dom里面想要对一个dom去操作,我们就需要去获取dom的一个节点,通过text方法,或者addclass的方法去修改dom,也就是说我们js和dom是耦合的,关系是很密切的,要在js里面去大量操作我们的dom。但是从长远角度,这是非常耗性能的
我们在使用vue去做单页面或者多页面开发的时候,都会发现我们在js里面仅仅去调接口,查询数据,查完以后把这些数据保存到我们的data里面,就更多的去关注我们如何把这个数据去存到data里面就完事了,那么对于data里面的变量如何去和dom进行交互就是另外一回事了,实际上也就是说,我们要更多去关注我们的数据层面,我们不需要去考虑dom节点,怎么去替换文本,怎么去循环,去添加class等等,只需要去关注我们的数据层面,把数据拼装好以后,页面就构建出来了。
组件化:为什么会出现requirejs,业务量太大了以后,我们的js里面要去实现太大的业务,导致团队间读文件就很费劲,我们想做一个登录的功能,为什么不按照业务模块去划分,不按照js模块去划分呢,这样团队间协作效率就会更高。
组件化也就是说我们做页面的时候,肯定有一部分是共用的,这样我们把这一部分去抽离出来形成一个组件,这样我们就可以用在任何一个地方
vue的数据绑定同步功能
通过MVVM的数据绑定实现自动同步
view也就是我们所说的数据层,视图层,也就是HTMLdom
viewModel是我们的vue实例化对象,也就是我们去new一个vue的实例,这个实例就是viewModel
Model 就是原生的js对象也就是我们的模型层,当我们的用户发生了一个行为去修改了dom的元素之后,修改的行为会被viewmodel进行监听,viewmodel监听到以后会去修改我们的模型层的数据,最后通过viewmodel的拼装来去改变我们的视图,就构成自动同步功能,我们经常去修改一个值,然后在页面上就会同步。
vue组件化
我们看到一个网页首先去想,这个网页能不能拆成更小的块,这一块,能不能在某些地方去共用
vue组件树
我们通过vue create 去构建一个SPA的时候,我们会发现main.js是我们的入口,入口之后会去加载我们的app.vue,app.vue就是这个组件的根,组件根就可以去加载我们的导航啊,footer啊分成三个小组件,三个小组件还可以继续细分成更小的组件,也就是我们的组件可以嵌套组件,大组件嵌套小组件,从而形成组件树
Object.definePrperty函数起到至关重要的作用
登录购物车数量角标通过vuex实现
实战演示: http://imooc.51.purse.com/
前端路由和后端路由实现方式不同
什么是前端路由
路由是根据不同的URL地址展示不同的内容或页面,
过去去做前端页面,我们可能会根据模板引擎去渲染刷新某一块内容,没有用到路由但是他也是一个单页面,针对当前页面,局部去渲染刷新某一块的内容
前端路由就是把不同路由对应不同的内容或页面的任务交给前端来做,之前是通过服务端根据URL的不同去加载不同的页面
我们做前端开发,更多去把前后端做一个分离,前端路由功能就更多需要前端自己去实现,过去传统去访问一个地址,后端会进行拦截,拦截以后会把对应的一张张页面发给前端,前端的页面实际上都是不存在的,只有一个首页,其他页面都是通过组件去构建而成的,所以是一个单页面的应用
什么时候使用前端路由?
在单页面应用,大部分页面结构不变,只改变部分内容的使用
前端路由有什么优点缺点?
优点:用户体验好,不需要每次都从服务器全部获取,快速展示给用户
缺点:
1不利于SEO,
2使用浏览器的前进后退都得重新发请求,没有合理利用缓存。
以前我们的页面都是真实存在的,我们店后退时候,实际上从浏览器内存去拿的这个页面,但是我们做单页面时候,他的每一个跳转都要重新发请求
3单页面无法记住之前的滚动位置,无论在前进,后退的时候
this.router.push({path:“”})
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://img-blog.csdnimg.cn/img_convert/9adedae8203fe11deafae15088ba9074.jpeg)
最后
javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。
放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。
[外链图片转存中…(img-VVqT5vp1-1712228308883)]
[外链图片转存中…(img-yZVVjpyA-1712228308883)]