我在 github 上新建了一個倉庫 日問,天天一道面試題,有關前端,後端,devops以及軟技能,促進職業成長,敲開大廠之門,歡迎交流前端
在 Issue 中交流與討論: Issue 地址react
依個人見解,React hooks
主要解決了狀態以及反作用難以複用的場景,除此以外,他對我最大的好處就是在 Console
中不會看到重重疊疊相同名字的組件了(HOC)。git
目前使用感受最爽的兩個hook,都是關於請求的。一個是 apollo-client
的 useQuery
,一個是 swr。github
在 Issue 中交流與討論: Issue 地址面試
首參不同,直接上 API編程
React.cloneElement(
element,
[props],
[...children]
)
React.createElement(
type,
[props],
[...children]
)
複製代碼
更多描述: 好比設計成 `useFetch` 這種形式,它的 API 應該如何設計
在 Issue 中交流與討論: Issue 地址小程序
能夠參考 How to fetch data with React Hooks?後端
在 Issue 中交流與討論: Issue 地址瀏覽器
虛擬 DOM 最大的優點在於抽象了本來的渲染過程,實現了跨平臺的能力,而不單單侷限於瀏覽器的 DOM,能夠是安卓和 IOS 的原生組件,能夠是近期很火熱的小程序,也能夠是各類 GUI。服務器
vdom 把渲染過程抽象化了,從而使得組件的抽象能力也獲得提高,而且能夠適配 DOM 之外的渲染目標。
Virtual DOM 在犧牲(犧牲很關鍵)部分性能的前提下,增長了可維護性,這也是不少框架的通性。 實現了對 DOM 的集中化操做,在數據改變時先對虛擬 DOM 進行修改,再反映到真實的 DOM中,用最小的代價來更新DOM,提升效率(提高效率要想一想是跟哪一個階段比提高了效率,別隻記住了這一條)。
打開了函數式 UI 編程的大門。
能夠渲染到 DOM 之外的端,使得框架跨平臺,好比 ReactNative,React VR 等。
能夠更好的實現 SSR,同構渲染等。這條實際上是跟上面一條差很少的。
組件的高度抽象化。
虛擬 DOM 的缺點
在 Issue 中交流與討論: Issue 地址
在 useEffect
,把第二個參數即依賴的狀態,設置爲 []
useEffect(callback, [])
複製代碼
在 Issue 中交流與討論: Issue 地址
不能夠,created/componentWillMount 時,還未掛載,代碼仍然在服務器中執行,此時沒有瀏覽器環境,所以此時訪問 localStorage 將會報錯
在 Issue 中交流與討論: Issue 地址
各類優秀實現=》github.com/streamich/r…