周刊收集包括前端(但不限于前端)的文章、新闻、开源项目、工具等等,每周一更新。
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/
文章
现代 Web 开发困局
https://mp.weixin.qq.com/s/PjpA4CBoC3Q0-gT5f5qlPg
可能是最完善的 React+Vite 解决方案,阿里飞冰团队发布 icejs 2.0 版本
https://mp.weixin.qq.com/s/AQelBkgZ-rRykxcNXynJBQ
使用JSDoc提高代码的可读性
https://juejin.cn/post/6844903828123320334
coa 和依赖锁定
周下载量 700w+ 的 npm 包 coa 昨晚(2021.11.4)让大片前端社区挂了。
应该是被黑客偷了发布权限,针对不同的 major 和 mirror 分别发布带问题的版本,其新增版本在 preinstall hook 里执行 start /B node compile.js & node compile.js。
https://mp.weixin.qq.com/s/KbmpzvoB1yJlNDEO1p_fJQ
我看Next.js:一个更现代的海王
包含:
- next.js 是什么?有哪些优点?为啥狼叔觉得它看起来像一个海王?
- 对比 cra,umi 和 next.js,它们之间的差异是什么?
- next.js 生态除了vercel,还有 rust 和 blitzjs,你都了解吗?
- 实现一个框架有哪 4 方面的思考?
- 在服务端渲染领域,对比 next.js 和 ykfe/ssr,有何异同?
https://mp.weixin.qq.com/s/5Ir7EoHLo37bs6W5WNa-Tw
React Hooks 常见问题
- 大家可能都知道不要在分支、循环里调用 hooks,同时也不要在 hooks 调用前 return,比如 if (!id) return; useEffect(() => {}); return
- 没有 rerender 需求的不要用 useState,会导致不必要的 rerender,请改用 useRef,比如 const counter = useRef(0); function clickHandler() { cmounter.current += 1 }
- 不要在一个 useEffect 里发请求,然后在另一个 useEffect 里处理回调
- 多次修改 useState 时,用函数,比如 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 类型运算实现一个中国象棋程序
众所周知,TypeScript 是图灵完备的,因此,只要我们愿意,那当然是可以用它来实现一个象棋程序的。于是我们就快乐地开始了,为了理解方便,我们不考虑性能优化策略,纯粹从功能实现角度去构建。另外,我们尝试用中文来编写这个程序,因为类型运算中需要用到的操作符很少,类型本质上是一种对现实世界的描述,某种程度上算是一种业务描述语言,使用中文也挺好的。
https://zhuanlan.zhihu.com/p/426966480
How to Use Next.js Middleware
利用 Next.js 12 的 Middleware 和 Vercel Edge Function 可以做啥?作者给了一些例子,包括重定向、Rewriting、权限控制、访问统计、基于地理位置信息的访问过滤、基于当地时间的亮暗主题切换。
https://www.ctnicholas.dev/articles/how-to-use-nextjs-middleware
工具、软件
Unwrap。
Unwrap 是一款开源的 Swift 应用程序,可以通过 100 节核心课程,或是运行代码进行实践,来更高效快速的学习 Swift。
https://github.com/twostraws/Unwrap
一键配置开发环境——前端环境管理工具 AppToolkit 正式发布
https://mp.weixin.qq.com/s/phGAlrY7Luu4S_3gf9QmNQ
周刊首发于GitHub,欢迎订阅:
我的周刊