前言:html
react提供了的高度抽象, 在大多數狀況下, 你能夠任意地操做DOM. 但有的時候, 使用已經存在的API或者第三方庫可讓你的操做變得更方便.react
使用react的時候, 咱們沒有直接寫DOM節點, 而是使用的虛擬節點.可是最後咱們看到的又是用一個個的DOM節點渲染出來的頁面,.瀏覽器
按照常理來講, 要將一個虛擬節點轉換爲一個在網頁中能正常顯示的節點, 須要必定的時間轉化, 這樣應該耗時會更長,在這一點上, react如何保證它能高效地渲染頁面呢?this
這其實就是react設計巧妙的地方, react響應很是快是由於它不直接與DOM進行比較, 對DOM的描述一直存放於內存中. 使用render方法其實就是返回一個對DOM的描述, react能在內存中對這個描述進行比較, 而後以最快的時間從新更新瀏覽器.es5
爲了和瀏覽器中的內容進行交互, 想要找到一個DOM節點, 你能夠給任何位置加上一個ref屬性. 我想詳細瞭解ref.spa
組件的生命週期:設計
爲了細化生命週期的執行過程, react又提供了will, did兩種方法, will這個是在生命週期開始以前調用, did是在生命週期已經執行了後調用.component
對生命週期細分:htm
Mounting 加載又細分爲:生命週期
updating又細分爲:
Unmounting:
加載複合組件支持如下方法:
react的兼容性:
支持絕大多數瀏覽器, 包括IE9及其以上.
對於那些連es5語法都不支持的瀏覽器, react固然也就不支持啦.
參考文檔: http://reactjs.cn/react/docs/working-with-the-browser.html