從Prototype.js
到風靡全球的jQuery.js
,都是在解決瀏覽器間DOM
操做的差別化問題,同時也提供了簡潔友好的API
,可是隨着標準的不斷的推動,如今瀏覽器間的差別化能夠說已經沒有了,像Github
就宣佈了棄用jQuery.js
,直接使用瀏覽器提供的DOM
操做更新界面。javascript
儘管瀏覽器提供的DOM
操做API
有時候看上去比較囉嗦,可是隻要全部瀏覽器實現一致,前端就不需再使用一層封裝來間接操做DOM
,只須要學習標準化的API
便可
從IE
的ActiveXObject
到XMLHttpRequest Level1
再到XMLHttpRequest Level2
,而後fetch
出現一統網絡請求。css
在咱們日常的開發中,能夠直接使用fetch
進行請求,無需再引入其它的網絡請求庫。不過目前fetch
提供的API
不夠豐富,可能在使用時還要簡單封裝前端
從最先的對象模塊命名空間,到amd
,cmd
等模塊化工具require.js
,sea.js
等,再到es module
,目前chrome
中已經能夠直接使用,而且動態的import
也已經支持,今後能夠告別那些第三方的模塊加載器,學習並使用標準的es module
便可java
好比以往咱們要實現平滑滾動,咱們要用setTimeout
或setInterval
先實現一下基礎的動畫引擎,而後再實現一下相應的tween
緩動算法,而後再應用到咱們的滾動上。如今瀏覽器已經支持經過css
給要滾動的節點添加scroll-behavior: smooth
,而後再操做相應的scrollTop
或scrollLeft
便可實現相應的平滑滾動,省去了原來大量的代碼或引用第三方類庫的事情react
再好比某個節點滾動到或即將滾動到可視區域作一些事情(像瀑布流等),以往像平滑滾動同樣,咱們要監聽滾動事件,咱們要計算節點的位置信息等一大堆事情要作,如今有IntersectionObserver
,咱們完成相似的功能只須要幾行代碼便可web
對於圖片多的網站,前端常常使用的圖片懶加載,如今也有了原生支持,給圖片加上<img loading="lazy"/>
便可,不但省去了大量的javascript
,也提高了易用性算法
經過前面的一些基礎點,咱們能夠看到瀏覽器愈來愈多的把一些經常使用功能內置進去,能夠預見將來也會更多的把經常使用功能內置進去。chrome
內置的功能不但方便開發人員,同時在內存管理上,性能上,資源使用上都要遠遠優於javascript
的實現瀏覽器
長遠看,如今前端開發的模式:界面管理+數據管理=應用。界面管理也頗有可能被內置到瀏覽器裏,簡單理解就是把頁面組件化的功能內置進去,好比內置一個react
。開發人員只須要管理好本身的業務數據便可。網絡
目前這個內置的界面管理瀏覽器提供的是web components
,可是它在使用起來仍然不夠方便,不過隨着時間的發展,也許一年半載以後瀏覽器發力web compoents
,把它打造的更順手易用也說不定。
從前面的一些例子咱們能夠看到,瀏覽器也在不斷的吸取好的開發思路和方式,同時開放更基礎,更易用的API
給到開發人員,這是一個互相輔助的過程。
一但某些庫或框架成爲事實上的標準,那爲何不推動它把它寫進標準,而後讓瀏覽器實現呢?好比jQuery.js
就是成功的案例,好比圖片懶加載也是很好的說明,也許瀏覽器會很快內置lodash
呢?
若是瀏覽器沒能發展好web components
,若是react
發展成熟穩定,瀏覽器或許就直接內置了,讓咱們只關注業務便可。
若是你有想法,來留言討論一下吧 ^_^