浏览器会内置类react框架

DOM操做

Prototype.js到风靡全球的jQuery.js,都是在解决浏览器间DOM操做的差别化问题,同时也提供了简洁友好的API,可是随着标准的不断的推动,如今浏览器间的差别化能够说已经没有了,像Github就宣布了弃用jQuery.js,直接使用浏览器提供的DOM操做更新界面。javascript

尽管浏览器提供的 DOM操做 API有时候看上去比较啰嗦,可是只要全部浏览器实现一致,前端就不需再使用一层封装来间接操做 DOM,只须要学习标准化的 API便可

网络请求

IEActiveXObjectXMLHttpRequest Level1再到XMLHttpRequest Level2,而后fetch出现一统网络请求。css

在咱们日常的开发中,能够直接使用fetch进行请求,无需再引入其它的网络请求库。不过目前fetch提供的API不够丰富,可能在使用时还要简单封装前端

模块化

从最先的对象模块命名空间,到amd,cmd等模块化工具require.js,sea.js等,再到es module,目前chrome中已经能够直接使用,而且动态的import也已经支持,今后能够告别那些第三方的模块加载器,学习并使用标准的es module便可java

功能点

好比以往咱们要实现平滑滚动,咱们要用setTimeoutsetInterval先实现一下基础的动画引擎,而后再实现一下相应的tween缓动算法,而后再应用到咱们的滚动上。如今浏览器已经支持经过css给要滚动的节点添加scroll-behavior: smooth,而后再操做相应的scrollTopscrollLeft便可实现相应的平滑滚动,省去了原来大量的代码或引用第三方类库的事情react

再好比某个节点滚动到或即将滚动到可视区域作一些事情(像瀑布流等),以往像平滑滚动同样,咱们要监听滚动事件,咱们要计算节点的位置信息等一大堆事情要作,如今有IntersectionObserver,咱们完成相似的功能只须要几行代码便可web

对于图片多的网站,前端常常使用的图片懒加载,如今也有了原生支持,给图片加上<img loading="lazy"/>便可,不但省去了大量的javascript,也提高了易用性算法

web components

经过前面的一些基础点,咱们能够看到浏览器愈来愈多的把一些经常使用功能内置进去,能够预见将来也会更多的把经常使用功能内置进去。chrome

内置的功能不但方便开发人员,同时在内存管理上,性能上,资源使用上都要远远优于javascript的实现浏览器

长远看,如今前端开发的模式:界面管理+数据管理=应用。界面管理也颇有可能被内置到浏览器里,简单理解就是把页面组件化的功能内置进去,好比内置一个react。开发人员只须要管理好本身的业务数据便可。网络

目前这个内置的界面管理浏览器提供的是web components,可是它在使用起来仍然不够方便,不过随着时间的发展,也许一年半载以后浏览器发力web compoents,把它打造的更顺手易用也说不定。

浏览器的将来

从前面的一些例子咱们能够看到,浏览器也在不断的吸取好的开发思路和方式,同时开放更基础,更易用的API给到开发人员,这是一个互相辅助的过程。

一但某些库或框架成为事实上的标准,那为何不推动它把它写进标准,而后让浏览器实现呢?好比jQuery.js就是成功的案例,好比图片懒加载也是很好的说明,也许浏览器会很快内置lodash呢?

若是浏览器没能发展好web components,若是react发展成熟稳定,浏览器或许就直接内置了,让咱们只关注业务便可。

若是你有想法,来留言讨论一下吧 ^_^

相关文章
相关标签/搜索