iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0

行文至此,鐵人賽已經完成三分之二。雖說有保留約五天的緩衝進度,但每日撰文的壓力對意志仍是考驗。累倒是其次,做這件事占用掉生活多大的比例,又能交換到什麼,才是關鍵。

因此,到了這個階段,我想先來回答一下開篇時所拋出的問題:「現在學React還來得及嗎?」

我會說,不只來得及,還很「著時」。
從React 17開始的功能升級,便替18的改變埋下伏筆。譬如不用遍歷整棵樹,就能使用diff演算法更新部分虛擬DOM的Reconciliation節能版;可以複用Event Object,但因不夠直觀而被取消的Event Pooling機制等。近年來,更是多出不少新觀念。

撇除<Context.Provider>可以寫得更簡潔這種小改款,其中一個在後Hook時代將影響深遠的發展,正是伺服器端組件(React Server Components)。

Takeaway

  • RSC只在伺服器端渲染,檔名為.server.jsx
  • RSC會在伺服器端渲染完;SSR(例如:Next.js)會先在伺服器端預渲染,再hydrate去客戶端
  • 預渲染:使用renderToString(),先渲染HTML過去
  • RSC讓JSX不用在客戶端轉譯
  • RSC和SSR可以同時使用,保留hydrate,相輔相成
  • RSC被視為無狀態的組件,不能用狀態管理的Hook或DOM API
  • RSC讓使用者不用一直透過useEffect獲取資訊
  • RSC將業務邏輯組件化,且不會影響bundle的大小
  • RSC裡可以寫非同步的async和await
  • 客戶端組件不能直接引入RSC,但可以把RSC當成{children}
  • Server Actions:React正在推動,讓客戶端可以更輕鬆調用非同步函式。常見語法有use server、use client等
  • RSC輸出格式:有ID的JSON
  • ID編號有J、M、S、E,分別代表Model、Module、Symbol、Error
  • 其中J是伺服器端渲染的,M是客戶端需要的

上一篇
【Day21】Recap3
下一篇
【Day23】vDOM
系列文
【現在學React還來得及嗎?】30天Takeaway分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言