iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0

Takeaway

  • 當一個組件不再渲染,它的狀態也不會保留
  • 相同位置的相同組件不再渲染,會被視為切換,保留狀態
  • 相同位置的相同組件想重置狀態?在不同位置渲染或使用key值
  • 小心不要打成id值等於什麼,寫作key值等於什麼(如id)才對
  • 將key值賦予給子組件時,只能在父組件裡標示。因為key值不是全域的
  • 如何幫不再渲染的組件保留狀態?都渲染但用CSS隱藏(效能差)、以狀態提升在父組件保留資訊、使用local和sessionStorage(後者的生命週期較短,畫面一關就清除)
  • 如何跨頁面保留狀態?Store(各大狀態管理工具)、React Context、local和sessionStorage
  • local和sessionStorage只能存字串,localForage則能幫助開發者用一樣簡單的方式使用非同步資料庫IndexedDB,適合存大量資料或非字串。就算瀏覽器不支援IndexedDB,localForage也能切換成localStorage。算是種降級(Downgrade)策略,跟Polyfill哲學正好相反,哈
  • 遇到需要在畫面裡多加新元素,但又要保留輸入狀態的好方法:直接把「是否等於State」當成渲染與否的條件,寫成三元運算或&&
  • Flux:適合搭配React的架構,後續被簡化成狀態管理用的Redux

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

尚未有邦友留言

立即登入留言