以下是一隻菜鳥在無窮迴圈之森與變數未宣告之谷中逃出生天的掉漆冒險故事 |
昨天花一整天才弄好的東西,過程中一度進退維谷、想衝去 slack 跟 senior 喊救命,最後菜鳥我終究還是靠著驚人的意志力,一邊維持不打擾別人休息時間的紀律,一邊奮力爬行抵達了終點... _:(´ཀ`」 ∠):
想解決的問題
系統中有三類物件,彼此互有關連,這些關連只會紀錄在其中一方,因此前端從 api 拿到資料後,會做一些計算,才能在每個物件的畫面上顯示出它和誰相關連。任一類物件新增、修改、刪除時,前端也需要重新計算,更新相關連物件的狀態。
前端這邊的計算任務為:
- 物件 A 變動時,自動更新物件 B 與物件 C
- 物件 B 變動時,自動更新物件 A
- 物件 C 變動時,自動更新物件 A
試誤過程
寫 react custom hooks 比較上手以後,發現 custom hooks 可以把別的 hooks 吐出來的變數吃下去當作參數,就決定利用這個特性來做相關連物件的自動更新。
參數不更新之障壁
無窮迴圈之森
變數未宣告之谷
結論
講這麼多,總歸起來其實也就兩個心得:
在 custom hooks 內,用 useEffect 訂閱來自其他 custom hooks 的參數
在 custom hooks 間,用 useState 佔位給尚未宣告的參數,再用 useEffect 更新它
後記
在 egghead 上完課、對 react hooks 漸漸上手後,一時不知道接下來該往哪個方向鑽研,覺得一個人邊練功邊自學的方式,開始遇到瓶頸。原本想換去有一線 senior 的地方工作,進步比較快,但又覺得換工作的過程要一直出門跟大量陌生人接觸,光用想的就累,只好一直不上不下的擺著。
最近事情有了轉機,主管
配合著 senior 的工作步調,菜鳥我展開了精實的 cowork 生活,精實到讓人忘了時間,跟老鳥 cowork 了快一個月,驀然回首,才發現其實只過了一個禮拜...
天公伯啊!一線的世界都這麼 hardcore 嗎?! 😱😱😱
沒有留言:
張貼留言