BridgeCraft logobridgecraft
週報顧問服務作品集關於聯絡登入
聯絡

bridgecraft

從資料視覺化到 AI Agent,一直在找下一個 meta

文章主題指南週報顧問服務Labs作品集系統架構關於聯絡RSS

© 2026 BridgeCraft — Waiting7777. All rights reserved.

← 所有文章

React Conf 2021 - React Develop Tooling

2022年1月15日 · Waiting7777 · 2 分鐘閱讀

Hooks name

在目前的版本,react tool 並沒辦法顯示 hook 的 “name”,所以 hook 在 dev tool 裡面看起來都一樣還要看他的 state 來得知是哪一個。

那麼什麼是 hook 的 “name” 呢?當大家提起 hook 的時候,通常說的是他的變數名稱。

所以 devtool 從 source map 取得 source code 然後 parse 出變數名稱來顯示。

Timeline

React devtool 新增了 timeline 區塊,看請來就像瀏覽器效能工具,但跟瀏覽器效能工具不同的是,react devtool 提供了更詳細的訊息以及建議。

function App() {
  const [text, setText] = useState("")
  
  const updateText = event => {
    setText(event.target.value)
  }
  
  return (
    <>
      <input value={text} onChange={updateText} />
      <FilteredList filterBy={text} />
    </>
  )
}

這是一個由 text 控制的 input 以及一個 list,在打字並擷取後看一下 timeline

當打字時,因為 input 跟 list 要同時更新,所以整個更新時間總和會比較長,這時候 devtool 就建議我們將這個更新分開。

這時就可以用 react 18 裡面的新 hook useDeferredValue

function App() {
  const [text, setText] = useState("")
  const deferredText = useDeferredValue(text)
  
  const updateText = event => {
    setText(event.target.value)
  }
  
  return (
    <>
      <input value={text} onChange={updateText} />
      <FilteredList filterBy={deferredText} />
    </>
  )
}

這 hook 接收一個 value 並且回傳一個稍微滯後(優先級較低)版本的值,這樣就可以把 input 跟 list 的更新分開,讓 input 的更新比較即時,然後比較昂貴的 list 更新稍微延後一些讓整體體驗更好。

在圖中就可以看到 input 跟 list 的更新分開了。

Timeline - Suspense

Suspense 是新的 API ,可以告訴 react 需要等待一些東西,而在 devtool 中同樣也會紀錄 Suspense 的狀態並且顯示在 Timeline 中。

Timeline - Browser context

如果有個情境,應用程式要從外部拿取 json 並且執行昂貴的 parse 後才把資料存回 react 中,就算上述所說行為都在 render 之外,Timeline 同樣可以展示發生了什麼。

What’s next?

  • Profiler 和 Timeline 的整合
  • React Native 的 profiling, inspecting, debugging
  • Server Component 的使用

總結

在 React Developer Tooling 這 stage 算是一種火力展示吧,但 hook name 這功能看起來 parse source code 蠻花時間的,所以是給個按鈕按了才展示,同時也見識到了 useDeferredValue 的使用場景,期望新的 tool 可以在 coding 上給予更多的幫助。

Reference

React Conf 2021

每週一篇 — 技術趨勢背後的商業邏輯

分享:

Waiting7777

WoW Arena 冠軍轉前端,用電競 meta 思維拆解技術趨勢。

關於作者

相關文章

AI 時代悲劇:爬蟲吃光內容 最後誰來餵 AI?AI

AI 時代悲劇:爬蟲吃光內容 最後誰來餵 AI?

從遊戲設計角度看這個問題:一個讓所有玩家都想當 free rider 的機制設計,最後一定崩潰。分析 AI 公司、內容創作者、讀者三方的利益衝突,以及可能的出路長什麼樣。

2026年8月14日 · HW SHU · 7 分鐘閱讀

繼續閱讀 →
YC 裡越來越多二次創業者 — AI 時代為什麼老手反而更吃香創業創投+4

YC 裡越來越多二次創業者 — AI 時代為什麼老手反而更吃香

為什麼 AI 時代反而讓「老手」更吃香?從 YC 的數據看 repeat founder 的優勢在哪,以及這對第一次創業的人有什麼啟示。

2026年8月12日 · Waiting7777 · 7 分鐘閱讀

繼續閱讀 →
OpenChamber:專為 AI Agent 設計的開發環境,跟 IDE 的差別在哪?AI Agents開發工具+5

OpenChamber:專為 AI Agent 設計的開發環境,跟 IDE 的差別在哪?

拆解 OpenChamber 的設計邏輯:為什麼 agent 需要專屬的開發環境、跟直接在 terminal 跑 Claude Code 有什麼本質差異,以及這個方向的商業潛力在哪。

2026年8月11日 · Waiting7777 · 8 分鐘閱讀

繼續閱讀 →

這篇文章對你有幫助嗎?

每週一篇 — 技術趨勢背後的商業邏輯

AI 產業在變什麼、工程師該注意什麼——拆清楚寄到你的信箱。