學習react 有哪些瓶頸需要克服?
如問題,還望不吝賜教!
2017-08-17 補充回復,詳情見下圖:(如有侵權,告知必刪,資料來源互聯網,感謝圖片作者!)
寫react有一年多了,我寫一下在我的學習路線中,一些重要的點
0. 能理解 view = f(data) ,數據驅動視圖的思維模式,狀態機的概念; 對於每個組件能設計出最佳的 props 和 state(state其實尤為難以設計,新手的state的設計基本上都存在各種錯誤)。
1. setstate 到底幹了啥,怎麼乾的; 掌握組件件通信,掌握容器組件和受控組件; 能區分同步非同步setstate。
2. react生命周期每一步的用處,什麼時候會觸發各個生命周期(比如props和key變了相應會發生什麼)
3. 理解 redux 解決了複雜 react 頁面中組件通信的難題; redux 中 事件,中間件, 函數式編程的用法和實現原理; 掌握 redux最佳實踐,以及背後思想。
4. 理解 react 組件的實現原理,可以寫高技巧性組件(antd中就有不少),理解virtual dom 及其實現(我們寫的組件如何掛載到dom上,又如何更新dom,從而進一步理解了生命周期中 react框架幹了什麼,react性能更佳方面和的原因,從而寫性能更佳的react代碼)
目前就想到這麼多,準備之後有空的時候就會寫總結並放到專欄裡面。最大的瓶頸就是jQuery思維,一旦了解了 React 的思想,React 還是很容易學的。
我猜題主想問的是「React如何入手」或者「如何克服React學習的瓶頸」,要問React有哪些瓶頸,那真的是每個人都有每個人的看法。
我接觸過很多React使用者,他們大多有jQuery經驗,普遍反映的「瓶頸」就是需要改變觀念,不再是選中一些DOM做一些操作這種編程方式,而是只描述「要畫成什麼樣子」的編程方式,當然,這其實也不算大的「瓶頸」,很快就能適應。自己的經驗
JSX是一個很髒的抽象,雖然說不用也行,但真開發起來,不用還真不行,你會碰到若干語法怎麼搞的問題,它不是HTML。
Redux是那種你最好自己能寫一兩個東西才能真正理解的所謂架構概念,雖然不是一定要Redux,但真要開發起來,不用你都覺得對不起它。
React Native同樣是一個很髒的抽象,真要開發起來,特別是稍複雜點的應用,你最好有一點Native Android / iOS 的知識。
瓶頸大概是寫得再科學也趕不上需求的變化一類的
閣下想學習太極嗎?你粑粑是誰?你麻麻是誰?你是誰?
我是做Android的,我是來歪樓的哈哈。
學習新框架最怕的就是用自己慣有思維去限制它,我之前是寫Java的順帶頁面也做(僅限於Html、原生Js、CSS),後來轉了Android,要寫界面時就用Html + CSS的那種思維去做,發現大不相同。再舉個例子,Android在請求網路的時候有很多網路框架可以完成,比如很多人最開始用Google的Volley來寫,完全是面對對象,添加Parameter和Header都是方法調用,很容易理解,後來換了Retrofit後是使用註解,但是需要在思想上有個傳統使用方式的轉變,不然就很難發揮出Retrofit的優點。
所以無論學什麼,個人認為先不要用自己慣有的思路限制它。先了解它可以做什麼,它做什麼的方式是怎樣的,它做什麼的原理是怎樣的,它做什麼的核心思想是什麼?
瓶頸大概是工具鏈吧,需要自己配置,還要挑,選擇困難症的地獄,而且配置文件大都很難調試。
另外自動補全、跳轉、jsx語法高亮,都很不成熟,雖然發展了也好幾年了,也沒見過太大的改進。
react本身還是符合直覺的,api也很少。
我目前遇到的主要是數據的通信問題,什麼時候用props、state,什麼時候用redux,什麼時候數據是最新的。。。只要拿到想要的數據,react用起來和其他框架好像也沒啥區別。目前也是正在學習react中,理解還不夠。
flux架構思想。webpack服務的靈活性。文檔的新手不友好。總體來說,react很容易,但是我們把他想難了,我們又不是寫框架的人,有什麼克服不了的
最大的瓶頸是對React的畏懼,好多人不學React的原因是它看起來好難,雖然最後還是咬咬牙學了。一些比較新的概念反而是次要的。
react代表的是一種新的開發思想,從工具到語法等等,需要每個環節去打通了,在實際開發業務場景遇到問題,並且解決問題,才能真正理解這個框架以及它的生態圈的牛逼。遇到問題,只要你有心,google總能找到解決方案。不要想太多,就怕你不做,付出總有收穫。
我覺得瓶頸跟語言框架關係不大。我猜題主是學習熱情下降了吧,建議去散散心,短途旅遊什麼的放鬆一下。
1.首先當然你得有js基礎,用過若干框架,了解框架的思想是最好不過了。
2.個人感覺 state 和 prop 是個比較麻煩的概念
3.組件如何切分也需要相當的經驗
4.其他相關技術棧知識,react-redux ,react-router ,webpack
5.等熟練的上述這些基礎的,搞搞react-native也就是信手拈來的事情
6.建議國外買一套30刀左右的模板,構建環境,各種集成都很完善,拿來做項目或者學習都是上上選
7.我是angular派的,react小東西是搞的動 ,但畢竟沒經過大項目的試煉,多少有點紙上談兵
作為一個剛接觸 React 一個月的人,有點想法。
1、React 基礎概念並不難,看看文檔,跟著寫一遍估計問題都不大;
2、聲明式渲染(Declarative)和 組件式開發(Component-Based)需要通過項目才能有切實體會
3、redux 概念理解不難,難在如何用好,如何用在項目中。
建議是:一定要通過一個完整的項目來將 React 這所有的技術和特點都串起來,這樣才能對 React 有更深的理解。
我剛剛完成了一個React + Redux + React-Router 入門實踐的項目——豆瓣電影-react版本:superman66/react-douban。
希望對題主能有幫助。
推薦閱讀:
※目前react的生態系統是什麼情況,有沒有比較公認的成熟的開發技術棧?
※前端路上,我不知道該如何走了???
※如何看待Typescript中的重載(Overload)?
※如何看待json語法中不能加註釋的設計?
※JS中{}+[]和[]+{}的返回值情況是怎樣的?
TAG:JavaScript | React |