官术网_书友最值得收藏!

1.4.2 React的理念

與jQuery不同,用React開發應用是另一種體驗,我們回顧一下,用React開發的ClickCounter組件并沒有像jQuery那樣做“選中一些DOM元素然后做一些事情”的動作。

打一個比方,React是一個聰明的建筑工人,而jQuery是一個比較傻的建筑工人,開發者你就是一個建筑的設計師,如果是jQuery這個建筑工人為你工作,你不得不事無巨細地告訴jQuery“如何去做”,要告訴他這面墻要拆掉重建,那面墻上要新開一個窗戶,反之,如果是React這個建筑工人為你工作,你所要做的就是告訴這個工人“我想要什么樣子”,只要把圖紙遞給React這個工人,他就會替你搞定一切,當然他不會把整個建筑拆掉重建,而是很聰明地把這次的圖紙和上次的圖紙做一個對比,發現不同之處,然后只去做適當的修改就完成任務了。

顯而易見,React的工作方式把開發者從繁瑣的操作中解放出來,開發者只需要著重“我想要顯示什么”,而不用操心“怎樣去做”。

這種新的思維方式,對于一個簡單的例子也要編寫不少代碼,感覺像是用高射炮打蚊子,但是對于一個大型的項目,這種方式編寫的代碼會更容易管理,因為整個React應用要做的就是渲染,開發者關注的是渲染成成什么樣子,而不用關心如何實現增量渲染。

React的理念,歸結為一個公式,就像下面這樣:

UI=render(data)

讓我們來看看這個公式表達的含義,用戶看到的界面(UI),應該是一個函數(在這里叫render)的執行結果,只接受數據(data)作為參數。這個函數是一個純函數,所謂純函數,指的是沒有任何副作用,輸出完全依賴于輸入的函數,兩次函數調用如果輸入相同,得到的結果也絕對相同。如此一來,最終的用戶界面,在render函數確定的情況下完全取決于輸入數據。

對于開發者來說,重要的是區分開哪些屬于data,哪些屬于render,想要更新用戶界面,要做的就是更新data,用戶界面自然會做出響應,所以React實踐的也是“響應式編程”(Reactive Programming)的思想,這也就是React為什么叫做React的原因。

主站蜘蛛池模板: 松原市| 合作市| 满洲里市| 科技| 平远县| 通化县| 明溪县| 南安市| 余江县| 桂东县| 永顺县| 合阳县| 吴江市| 汕头市| 吉林省| 安吉县| 武川县| 宁夏| 宁都县| 肇东市| 榕江县| 徐汇区| 额敏县| 乡城县| 日土县| 贵港市| 互助| 双流县| 姜堰市| 宜阳县| 金秀| 玉山县| 旺苍县| 松桃| 廉江市| 永春县| 平和县| 临泽县| 扎赉特旗| 吕梁市| 锡林浩特市|