
程墨
如果你熟悉傳統的jQuery應用開發,那麼通過閱讀本書會讓你發現不一樣的應用構建模式;如果你之前學習過Angular.js或者Vue.js,那麼對理解React和Redux的工作機理很有幫助,同時有機會體驗同樣一種思想的不同實現之道。
Done. 這本書讀了很多年, 18年從公司讀到浙圖, 又到北京. 大概4年左右. 但卻是第一次讀完. 期間我的技術棧也輾轉多種, 最後又重歸react. 函數式編程這種心智模式還是爲我所喜歡, 是一種在拘束裏的自由. 覺得更適合做架構設計.畢竟架構要聚焦於代碼。
redux部分寫的不錯,分片和同構目前自己需求不大,大致看了一下。 react和redux技術棧完美的契合所謂:軟件=組件+鏈接器+限制的思想。 在基於相關技術棧的最佳實踐上,最近了解了阿里的dva框架,哈哈,從應用的角度還真的很簡單!
[第14本]最近工作需要用到react,快速翻完,算是入門。
快放了一遍。如果沒有JS和html的豐富經驗、或者沒用過Vue、或者不熟悉jQuery的話,根本不用細看這本書,看得再細也白看,完全領會不到各種應用構建模式的不同之處,更別提實際操作了[捂臉]。看來還是得乖乖地體系化學習,跳躍不得~
全程用微信讀書網頁版讀完,唯一缺點就是不能劃線筆記,除此之外全是優點。去程墨老師github上拉了代碼,一側看代碼一側看文章,筆記用了Markdown記錄,學習體驗極佳。就是自己腦袋愚笨,有些內容第一遍還是不太懂,等我去看一圈博客,做點項目再回來重讀一遍。這本書只是入門,後面還有immutable、hooks得學,學海無涯、任重道遠,永懷一顆學徒的心。
深入淺出還是差一點,發版的時間有點點早了,具體的還是要參照使用的版本,但是帶來了許多的基礎知識以及react的構建模式以及日常開發需要注意的react,那就~~~總結一下知識點吧。 1、初始化:開發具備條件(瀏覽器【保證IE版本不低於8.0】、代碼編輯器、Node.js、create-react-app)、瞭解JSX、eject命令(彈射)【將潛在的技術棧配置“彈射”到應用的頂層】; 2、virtual Dom:不會觸及瀏覽器部分,存在於javascript空間的樹形結構,更新virtual Dom來更新瀏覽器DOM渲染; 3、組件開發:組件數據(prop和state,prop是組件對外接口,state是組件內部狀態)、生命週期(裝載過程Mount【constructor(初始化state、綁定成員函數this環境)、getInitialState、getDefaultProps、componentWillMount、render(返回一個JSX描述的結構,用來操作渲染)、componentDidMount(只在瀏覽器端執行,比如通過AJAX獲取數據來填充組件)】、更新過程Update【componentWillReceiveProps(父組件render就會觸發)、shouldComponentUpdate(返回一個布爾值告訴React庫要不要重新渲染)、componentWillUpdate、render、componentDidUpdate】、卸載過程Unmount)【componentWillUnmount(卸載在componentDidMount中用非React創造的一些DOM元素,如果撒手不管可能會造成內存泄漏,因此需要在這個生命週期中清理掉這些DOM元素)】; 4、Flux、Redux:Flux庫(Dispatcher【用來派發action】、action【定義action類型(需要字符串類型,根據類型使用dispatch)】、Store(是一個對象,存儲應用狀態同時還要接受Dispatcher派發的動作,根據動作決定是否要更新應用狀態、emit函數、on函數、removeListenter函數),單向數據流)、Redux(唯一數據源、保持狀態只讀、數據改變只能通過純函數完成,整個應用只保持一個Store,Provider(subscribe、dispatch、getState)); 5、模塊化:代碼文件的組織結構(按角色組織、按功能組織)、確定模塊的邊界、Store的狀態樹設計(一個模塊控制一個狀態節點、避免冗餘數據、樹形結構扁平); 6、開發輔助工具:Chrome擴展包(React Devtools、Redux Devtools、React Perf)、redux-immutable-state-invariant; 7、性能優化:單個React組件性能優化、多個React組件的性能優化、利用Reselect提高數據選取的性能(shouldComponentUpdate、key的使用; 8、高階組件:代理方式、繼承方式、以函數爲自組件、 9、訪問服務器、中間件:redux-thunk 10、單元測試:Jest框架、輔助工具(Enzyme、redux-mock-store); 11、動畫:CSS3方式(transition)、腳本方式(ReactCSSTransitionGroup【react-addons-css-transition-group插件、React-Motion動畫庫】); 12、同構渲染:功能組件既能在瀏覽器端渲染,也可以在服務器端渲染產生HTML,脫水和注水。
曾經工作需要這部分知識,想着系統學習下,只是還沒學完,那個項目被砍掉了。現在大模型出來了,感覺不是太有必要系統學習了,畢竟不是專門做這塊的。所以這本書沒有讀完,但是還是給個推薦吧。
有幸在2018年左右時遇到此書,那時從單純的jquery進階到框架時有諸多阻礙,而手上的項目卻無人能接(原來是外包、自研團隊無人經手、接洽有諸多麻煩); 那時初讀有些雲裏霧裏、但至少能開始運維手裏的那套大型代碼,而現在四年過去再重讀,有些已信手拈來、有些仍有些生澀,但就像書中所述“也許此書中的內容很快就會過時,但其思想永伴你我”。所以,我推薦給從初級到中級的朋友。
前面3章由淺入深,挺不錯的,慢慢熟悉一些基礎概念,但是第四章的TODO實例真的敗筆,文件順序亂,有的文件內容也不介紹新建在哪裏,內容是什麼後面就直接使用了..... 感覺作者是不是覺得太累了加快進度了....感受不到前面講述的那麼細緻
現在都用hooks了,感覺過時了