前端学习——关于前端框架的思考
创始人
2025-01-07 07:03:40
0

前端框架

我们知道在AngularJS,react,vue等前端框架出现之前,前端开发都是通过js直接操作dom树来实现的,而有了前端框架之后,前端开发基本上不需要在直接操作dom树,相当于在原生html的dom树之间和前端程序员之间添加了一个中介,程序员通过这个中介来操作dom,本身并不操作dom。

而既然多了这么一个“中介”,那么前端程序员想通过框架进行前端开发,那么就要遵守这些框架的规则,比如每个前端框架都有一些自己拥有的特殊的语法或指令。

比如,vue就是通过把vue的实例对象挂载到html的一个dom节点上,然后以此为基础,所有基于vue框架的开发,都是通过这个vue对象来实现对实际dom的操作,而这个节点也被称为vue的根节点。而挂载方式是通过vue对象的#el属性或者$mount函数实现的(基于vue-cli开发的vue项目,挂载操作是在main.js文件中实现的)

当然,前端框架也提供了一大堆对dom进行操作的一些方法和逻辑,比如vue提供的指令,如最常用的v-bind: 数据绑定指令(简写为:),v-on: 事件指令(简写为@)等,还有如循环v-for指令,其有一个key属性,是vue专门用来做diff匹配用的, 可能很多人学vue的时候都会很奇怪为什么使用v-for指令还要指定一个key。

为什么要有前端框架?

那么可以直接使用js操作dom开发,为什么还要有前端框架这个“中介”呢,而且每多加一层就需要更多的时间,导致运行效率更低。

首先是因为使用js开发效率太低,使用js或者jquery开发时,需要写大量的操作dom的js代码,而且看起来很杂乱,很多时候想看明白一个存js开发的前端项目,不但要懂基础的js语法,html语法等,还要有足够的项目经验,否则可能根本就看不懂。

其次,使用了前端框架之后,不但能够增加开发的效率,而且事实上可能没减少运行效率,反而间接提升了运行效率。

因为,如果直接使用js操作dom ,那么所有的dom操作都是真实的,也就是说js每次都是在真实的dom上进行操作,这样浏览器就需要不停的进行dom的解析和渲染。

而使用了前端框架之后,比如vue有虚拟dom的功能,使用vue开发时,涉及到dom操作,这时vue引擎会先生成一个虚拟dom,然后通过虚拟dom和真实dom进行匹配,也就是diff算法,如果dom以存在且数据没有改变,这时就不需要操作这个dom了,而发现真实dom中不存在或不一致的dom时,才会真正的去操作dom,这样就减少了频繁修改dom的问题。

比如,需要实现一个列表展示的功能,如果直接使用js操作,这时就需要自己写一个循环遍历的功能,然后去创建dom节点展示数据,但当你需要在列表中新增一列时,你就需要把旧列表给闪电,然后重新根据数据生成一个新的列表。

但如果使用的是前端框架开发,比如vue,这时vue就会根据新的数据创建一个虚拟列表的dom, 然后把虚拟列表中的dom节点和数据与真实dom节点和数据进行匹配。当新增一列时,虚拟dom发现真实dom中没有这个新增的一列时,这时vue才会操作真实dom直接增加一列dom节点即可,而不用把整个列表dom全部删掉,然后重新生成。

相关内容

热门资讯

围绕透视问题!wepoker透... 围绕透视问题!wepoker透视脚本视频,德普之星怎么开辅助,其实是真的有挂(有挂透视)1、德普之星...
揭露一下!光明辅助器,潮汕掌上... 揭露一下!光明辅助器,潮汕掌上娱破解,总是真的有挂(哔哩哔哩)1、打开软件启动之后找到中间准星的标志...
无独有偶!wepoker私人局... 无独有偶!wepoker私人局透视,智星德州可以透视吗,都是确实有挂(有挂透明挂)1.智星德州可以透...
教你一下!四川家园游戏辅助软件... 教你一下!四川家园游戏辅助软件,阿拉斗牌作弊视频,一贯是真的有挂(哔哩哔哩)四川家园游戏辅助软件能透...
黑科技辅助挂!wepoker怎... 黑科技辅助挂!wepoker怎么看底牌,德扑之星辅助工具如何设置,一贯存在有挂(有挂秘籍)1、很好的...
解迷一下!福州十八扑外卦视频,... 解迷一下!福州十八扑外卦视频,wepoker辅助器免费下载,原来真的是有挂(哔哩哔哩);1、操作简单...
据玩家消息!hhpoker到底... 据玩家消息!hhpoker到底可以作弊吗,德普之星辅助工具如何设置,竟然真的有挂(有挂分享)据玩家消...
关于一下!微信开心泉州辅助器,... 关于一下!微信开心泉州辅助器,赣牌圈的好牌几率,一直存在有挂(哔哩哔哩)1、超多福利:超高返利,海量...
今日!德州局怎么透视,智星菠萝... 今日!德州局怎么透视,智星菠萝可以辅助吗,切实是真的有挂(确实有挂)1、智星菠萝可以辅助吗免费脚本咨...
教你一下!边锋干瞪眼ios辅助... 教你一下!边锋干瞪眼ios辅助,祺友互娱脚本,竟然有挂(哔哩哔哩);1、每一步都需要思考,不同水平的...