- 深入淺出React和Redux
- 程墨
- 742字
- 2019-01-04 20:50:54
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的原因。
- 程序設計與實踐(VB.NET)
- C# 從入門到項目實踐(超值版)
- Mastering Python High Performance
- Visual Basic學習手冊
- Functional Kotlin
- 網絡爬蟲原理與實踐:基于C#語言
- Python:Master the Art of Design Patterns
- Haxe Game Development Essentials
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- Swift 4 Protocol-Oriented Programming(Third Edition)
- 動手學數據結構與算法
- DB2SQL性能調優秘笈
- Spark技術內幕:深入解析Spark內核架構設計與實現原理
- Android初級應用開發
- Spring Web Services 2 Cookbook