目前較為流行的react確實有很多優(yōu)點,例如虛擬dom,單向數(shù)據(jù)流狀態(tài)機的思想。還有可復(fù)用組件化的思想等等。加上搭配jsx語法和es6,適應(yīng)之后開發(fā)確實快捷很多,值得大家去一試。其實組件化的思想一直在提,原來的開發(fā)中也會抽一些公共的模塊出來。但是react帶來的思想沖擊是革命性的,套用一句可能不太合適的話來,描述:萬事萬物皆組件,在這種思想的影響下,不管什么框架都可以抽一些公共的模塊出來,應(yīng)該秉持一種心態(tài):任何代碼都盡量不要重復(fù)寫兩遍,如果存在那么就可以考慮封裝起來作為組件。當(dāng)然不是一味的提倡盲目抽離,這個度還是要把握好的。

  但是,人無無人,何況物乎。react雖好,但是目前國內(nèi)的現(xiàn)狀是還存在一個讓人頗為頭疼的瀏覽器系列——微軟的ie系列。雖然微軟最新推出的ie系列已經(jīng)不再那么特立獨行了,但是用戶不一定也會升級呀。我一個瀏覽器能用就行,干嘛費那個勁隨時升級,而且有這個想法的不在少數(shù)。所以面向用戶的系統(tǒng),根據(jù)我們自己統(tǒng)計的瀏覽器使用情況(隨手安利一下自己的瀏覽器統(tǒng)計工具https://github.com/future-team/cat-browser)。ie6這個貨排名還不太靠后,遑論ie7-9!

  要兼容這些特立獨行的文藝青年,react真的有點力不從心了。雖然有一些辦法可以解決一些問題,例如引入es-shims轉(zhuǎn)換es6語法的不備支持現(xiàn)象。但是整體來說還是不能用的?,F(xiàn)身說法,前段時間一個項目使用react來開發(fā),要求兼容ie8,但是react路由的hash值在ie8下面竟然會丟失。。。。最后還是用一些其他方式繞過了。所以jquery還是有存在的必要性的。

  要是開發(fā)兩套組件,成本還是蠻大的,并且重復(fù)的工作量也不小。所以就有個想法能不能開發(fā)一個公用組件,jquery和react技術(shù)棧都可以使用。剛開始的時候也覺得不太現(xiàn)實,畢竟兩種技術(shù)的定位和開發(fā)模式存在很大差異。不過空想是沒什么用的,動手實踐一下才是王道。(今天的前言說的有點多了。。。)所以打算實現(xiàn)一個celling組件這個名字還真不好想,就是實現(xiàn)簡單的吸頂、吸底和中間特定條件下的吸頂?shù)囊粋€定位組件。

  首先分析一下實現(xiàn)的可能性:

  一、分析一下兩者的不同:

  1、在于html的渲染:jquery畢竟只是個類庫,具體dom元素還是要html來渲染或者其他方式插入,react通過自己的jsx語法將兩者放在一起通過虛擬dom來渲染

 

網(wǎng)友評論