iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
Modern Web

以 React 為主的那些前端事系列 第 17

Day 17 - useReducer + useContext = Redux?

  • 分享至 

  • xImage
  •  

如果有錯誤,歡迎留言指教~ Q_Q

上篇 Day 16 - 用 useReducer 取代 Redux !? 提到~ Redux 會把 State 集中在 store 管理

但 useReducer 並不像 redux 擁有 global 的 store

那把 useReducer 和 useContext 這兩個 Hook 結合,就能變成 Redux 嗎?

怎麼讓 useReducer 擁有 store?

在上上上篇(XD) Day 14 - useContext 提到

createContext 建立出 Provider,把需要共用資料的 component 們包起來

這些 component 就能一起使用存在 Context 裡的資料

在需要的資料的 component 使用 useContext 就能簡單使用

這樣就能讓 useReducer + useContext = Redux 嗎?

  1. 需要考慮到處理非同步的問題
  2. 無法做到 redux 生態系的 middleware
  3. useContext 存在一個很大問題就是被傳遞的值改變時,所有子元件都會重新被 render

如果是較單純的需求的話,還是可以 useReducer + useContext 搭配來解

不然還是使用 Redux 這類型的管理 state 吧


上一篇
Day 16 - 用 useReducer 取代 Redux !?
下一篇
Day 18 - custom hook
系列文
以 React 為主的那些前端事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言