湖中劍 前端周刊 #12 | React Router 6、依賴鎖定、React Hooks指南、海王 Next.js、AppToolkit效率工具

周刊收集包括前端(但不限于前端)的文章、新聞、開源項目、工具等等,每周一更新。

?? News

React Router 6

終于來了,你跟(更)的上嗎?

https://remix.run/blog/react-router-v6

TypeScript 4.5 RC

自 4.5 Beta 后,最大的變更是延遲了 Node 12 ESM 的支持,目前可通過 moduleResolution:nodenext 和 module:nodenext 開啟。

https://devblogs.microsoft.com/typescript/announcing-typescript-4-5-rc/

?? 文章

現(xiàn)代 Web 開發(fā)困局

https://mp.weixin.qq.com/s/PjpA4CBoC3Q0-gT5f5qlPg

可能是最完善的 React+Vite 解決方案,阿里飛冰團隊發(fā)布 icejs 2.0 版本

https://mp.weixin.qq.com/s/AQelBkgZ-rRykxcNXynJBQ

使用JSDoc提高代碼的可讀性

https://juejin.cn/post/6844903828123320334

coa 和依賴鎖定

周下載量 700w+ 的 npm 包 coa 昨晚(2021.11.4)讓大片前端社區(qū)掛了。

應該是被黑客偷了發(fā)布權限,針對不同的 major 和 mirror 分別發(fā)布帶問題的版本,其新增版本在 preinstall hook 里執(zhí)行 start /B node compile.js & node compile.js。

https://mp.weixin.qq.com/s/KbmpzvoB1yJlNDEO1p_fJQ

我看Next.js:一個更現(xiàn)代的海王

包含:

  • next.js 是什么?有哪些優(yōu)點?為啥狼叔覺得它看起來像一個海王?
  • 對比 cra,umi 和 next.js,它們之間的差異是什么?
  • next.js 生態(tài)除了vercel,還有 rust 和 blitzjs,你都了解嗎?
  • 實現(xiàn)一個框架有哪 4 方面的思考?
  • 在服務端渲染領域,對比 next.js 和 ykfe/ssr,有何異同?

https://mp.weixin.qq.com/s/5Ir7EoHLo37bs6W5WNa-Tw

React Hooks 常見問題

  • 大家可能都知道不要在分支、循環(huán)里調用 hooks,同時也不要在 hooks 調用前 return,比如 if (!id) return; useEffect(() => {}); return <div />
  • 沒有 rerender 需求的不要用 useState,會導致不必要的 rerender,請改用 useRef,比如 const counter = useRef(0); function clickHandler() { cmounter.current += 1 }
  • 不要在一個 useEffect 里發(fā)請求,然后在另一個 useEffect 里處理回調
  • 多次修改 useState 時,用函數(shù),比如 setCount(count+1); setCount(count+1) 應該改成 setCount(count => count + 1); setCount(count => count + 1);
  • 不要忘記給 useEffect 加依賴

https://blog.bitsrc.io/common-react-hooks-mistakes-every-developer-should-avoid-defd47d09d8c

Everything announced at Chrome Dev Summit 2021

2021年度Chrome Dev Summit大會的摘要匯總。

https://web.dev/cds2021-updates/

用 TypeScript 類型運算實現(xiàn)一個中國象棋程序

眾所周知,TypeScript 是圖靈完備的,因此,只要我們愿意,那當然是可以用它來實現(xiàn)一個象棋程序的。于是我們就快樂地開始了,為了理解方便,我們不考慮性能優(yōu)化策略,純粹從功能實現(xiàn)角度去構建。另外,我們嘗試用中文來編寫這個程序,因為類型運算中需要用到的操作符很少,類型本質上是一種對現(xiàn)實世界的描述,某種程度上算是一種業(yè)務描述語言,使用中文也挺好的。

https://zhuanlan.zhihu.com/p/426966480

How to Use Next.js Middleware

利用 Next.js 12 的 Middleware 和 Vercel Edge Function 可以做啥?作者給了一些例子,包括重定向、Rewriting、權限控制、訪問統(tǒng)計、基于地理位置信息的訪問過濾、基于當?shù)貢r間的亮暗主題切換。

https://www.ctnicholas.dev/articles/how-to-use-nextjs-middleware

?? 工具、軟件

Unwrap。

Unwrap 是一款開源的 Swift 應用程序,可以通過 100 節(jié)核心課程,或是運行代碼進行實踐,來更高效快速的學習 Swift。

https://github.com/twostraws/Unwrap

一鍵配置開發(fā)環(huán)境——前端環(huán)境管理工具 AppToolkit 正式發(fā)布

image

https://mp.weixin.qq.com/s/phGAlrY7Luu4S_3gf9QmNQ


周刊首發(fā)于GitHub,歡迎訂閱:

我的周刊

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容