Re: [討論] 初探 reactjs 疑問

作者: y2468101216 (芸)   2016-03-07 11:22:59
※ 引述《cyclone350 (老子我最神)》之銘言:
: 大家好
: 最近常常聽到 reactjs,聽說很不錯用很多優點之類的,然後執行速度很快
: 所以今天簡單看一下 reactjs 的介紹說明及 Hello World
: 看完後有幾個疑問讓我很困擾
: 1. reactjs 速度很快...
: 從下面兩個地方看了說明
: http://www.slideshare.net/JustinWu13/j-queryreact-js
: http://andyyou.logdown.com/posts/234130-reactjs-reactjs-decrypt
: 主要理解是 reactjs 有 virtual dom,他會把一系列的 dom 更新先存在 virtual dom
: ,
: 最後由 reactjs 統一更新到 dom 底下。
: 但是,我對 angularjs 理解也是有差不多的概念,我們異動一般的 js 物件
: 當 js 物件產生變化後,angularjs 將這些異動部分更新到 dom (所謂的$apply)
: 既然 angularjs 跟 reactjs 都一樣是統一幫使用這將異動值更新到 dom
: 那為什麼 reactjs 會比較快?
: 是 reactjs 更新 dom 時有進行最佳化嗎? 如果是這樣,那 angularjs 的 $apply
: 有做最佳化的話,是否就可跟 reactjs 一樣?
: 想了這些之後,直接去 google,看到一篇文章
: http://blog.500tech.com/is-reactjs-fast/
: 嗯? 文章大意是說是在 reactjs conf 2015 時用的範例比較不那麼公平
: 事實上只要簡單修改 angularjs demo 的程式碼,就會發現他們速度其實差不了多少
: 看了這篇文章後更懷疑了 reactjs 是比較快的說法了...
http://www.alloyteam.com/2015/10/react-virtual-analysis-of-the-dom/
可以參考這篇,因為我並沒有真的去實踐vitual dom。所以沒辦法跟你說angular
跟react兩個算法的不同。
但react確實有最佳化對DOM的操作,主要是依賴diff去算怎樣更新最快。
我上面貼的文章有說,react並沒有說他會比原生操作快,
他只是保證他在大部分的情況下有不錯的效能。
: 2. reactjs 很簡單很好學
: 就我的理解,reactjs 很像是 angularjs 的 directive...
: reactjs 有用 jsx,這樣的混搭的語法糖對熟悉 js 的人也許很好用
: 但真的好學嗎? 這也許有點主觀... 但是我真的沒感覺可以很簡單上手
React一開始的學習曲線很高,有點類似Vim的感覺,後面習慣就會覺得很簡單。
JSX其實一點也不好學,一開始我還有打算純用React.createElement來寫....
: 3. trace code 方便嗎?
: 因為比起撰寫程式,我們更常閱讀程式
: 所以能夠快速地看懂程式碼並且找到 bug 是很重要的
: 這樣請問各位有用過 reactjs 的前輩了
: 相較於 jQuery 與 angularjs, reactjs 的閱讀性如何?
React大勝,無庸置疑,JQ跟angular太容易寫髒了。
React拋棄了html,將code全部塞到js了,易於組件化跟分割。
: 4. 開發時程
: 相較於其他 js framework,reactjs 開發時程是花更多時間還是更少時間? (開發時
: 間含測試程式)
: 因為本人沒實際用過,也沒特別深入了解相關機制
: 想請問各位前輩用 reactjs 的心得
: 還是我在觀念的理解上有誤? 也歡迎指證
開發速度取決你的熟悉度。
之所以要使用React是因為他提倡了兩個觀念,UI跟Data的分離,UI的OO化。
將UI跟Data分離讓你易於寫Unit test,因為Data本身是一個純數據的存在很好測試。
而你在寫React的過程中,你會感覺到React其實就是很像是在實踐OO,一樣要封裝、繼承
這是在以前html你不太會去做的。
作者: cyclone350 (老子我最神)   2016-03-08 00:44:00
感謝回答

Links booklink

Contact Us: admin [ a t ] ucptt.com