該週報主要為各個地方內容的匯總整理
技術#
本文介紹了 TypeScript 中 infer 關鍵字的使用。該關鍵字允許開發者從現有程式碼中提取和推斷類型資訊。使用該關鍵字可以從一個已有的類型或表達式中提取類型,並且可以用於條件類型、函數和映射類型等場景。使用 infer 關鍵字可以提高類型安全性,使程式碼更加高效和清晰。文章還強調了該關鍵字的一些注意事項,並提供了一些實際的應用例子。
避免 Vercel 稅:如何使用開源替代方案進行無伺服器的 Postgres、Redis 和 Blob 儲存
這篇文章討論了 Vercel 最近宣布的無伺服器儲存解決方案,包括 Postgres、KV 和 Blob。雖然這些服務提供了流暢的工作流程,但它們的價格較高。該文章建議使用 WunderGraph 作為替代方案,WunderGraph 是免費的、開源的,並提供類型安全、增強的 DX 和易於本地開發。文章提供了一個關於 WunderGraph 的快速入門指南,並解釋了如何使用它來實現 Neon for PostgreSQL、Upstash for Redis 和 Cloudflare R2 for blob 儲存。
語義和 popover 屬性:什麼時候使用?
這篇文章討論了 HTML 中的新 Popover 屬性可以在不改變元素語義的情況下向元素添加行為。作者探討了可以與 Popover 屬性一起使用的不同角色,例如選單、對話框和列表框,並提供了何時使用每個角色的示例。本文還解釋了每個角色的鍵盤和焦點期望,並指出 Popover 屬性是實驗性的,尚未得到廣泛支援。
- React Server Components 旨在通過伺服器驅動的思維模式實現現代 UX,從而導致客戶端 JavaScript 包顯著縮小。
- Server Components 不是 Server-side Rendering (SSR) 的替代品,但配合使用時,它們支持快速渲染中間格式,然後使用 SSR 基礎設施將其渲染為 HTML,從而仍然能夠快速進行早期渲染。
- Server Components 引入自動代碼拆分,將客戶端組件中的所有常規導入視為可能的代碼拆分點,允許客戶端在渲染過程中更早地獲取組件。
從將 Next.js App Router 部署到生產環境中學到的 5 個教訓
- Next.js 13 的 App Router 提供了幾個新功能,包括 Nested Layouts、Server Components 和 Streaming,是第一個完全利用 React 18 原語的開源實現。
- App Router 有兩個快取,一個是客戶端快取,另一個是伺服器端快取,必須了解它們如何相互作用。
- Streaming 功能允許更早地顯示頁面的某些部分,而不必等待所有資料加載完成。
- URL 搜尋參數在佈局伺服器組件中不可用,最好在 URL 路徑中使用它們。
- App Router 的規範化檔案結構帶來許多好處,例如促進使用 React 原語。
- 採用像 App Router 這樣的新技術可能具有挑戰性,但它提供了許多好處。
工具#
zact
React 的伺服器動作
其他#
創業公司有一個準則,叫做「最小可行產品」,意思是產品只要做到最簡單的可運行程度,就可以發布,讓市場來檢驗是否可行。
我想提一個相反的概念,叫做「最大可行產品」,意思是產品的主要功能完備以後,就到此為止了,不再添加新功能。我見過太多的優秀軟體不斷膨脹,功能越來越多,直到變得無比難用。
-- 《最大可行產品》