All Posts
Drizzle vs Prisma
对于用 `Node.js` 进行服务端开发的“全栈”们来说,`Prisma` 可能大家最熟悉被采用量最多的 `ORM` 工具,而后起之秀 `Drizzle` 也凭借性能优势和其它特点迅速得到一部分开发者青睐。Prisma 和 Drizzle 相比有什么异同和优缺点呢?
Read Post
Headless CMS 的一些弊端
像 `Headless UI` 一样,`Jamstack` 和 `Headless CMS` 概念这几年很火,连博客/内容网站巨无霸 `Wordpress` 都开始支持**Headless**模式。趁着要做一些 SSG 小网站的机会也去调研了一圈 `Headless CMS`,发现并不像想象中的那么好,目前还是存在一些弊端。
Read Post
React 中使用 ComponentPropsWithoutRef 扩展 html 元素
有时会需要基于原生 HTML 元素扩展一些自定义 React 组件,这个过程中你需要手工指定需要用到的原生 HTML 元素本机属性,如 `onClick` `type` 等,`ComponentPropsWithoutRef` 类型可以帮你获取 HTML 元素的所有本机属性作为组件的 props 类型,从而避免手工劳动。
Read Post
React 组件 `displayName` 属性的作用和影响
`displayName` 是 React 组件的一个静态属性,虽然我们平时很少专门设置它但在一些代码库里还是能经常看到它的身影。那么这个 displayName 属性到底有啥用,如果不设置它的话 React 会如何处理呢?
Read Post
TypeScript 定义类型更应该用 type 还是 interface?
自 TypeScript 第一个版本开始 `interface` 就存在,它们受到面向对象编程的启发,允许你定义对象或使用继承来创建类型。 但 TypeScript 中的 `type` 除了表示 string、number 等基本类型,也可以定义对象甚至通过`交叉类型` 和 `联合类型` 来表达类型间的关系并创建一个新类型。 声明对象类型时,更应该使用 `type` 还是 `interface` 呢?
Read Post
容易被忽视的 SEO 问题: Google safesearch
做 Google SEO 除了要遵守一些常见规则,在网络 UGC 内容日益发达的今天还有一条容易无意间触碰到的规则:`Google safesearch`。那什么是 Google safesearch, 如何判断我的网站是否触碰了这条规则,如果已经无意间触碰了这条规则该怎么办呢?
Read Post
sessionStorage,localStorage 和 cookie 的一些异同
sessionStorage,localStorage 和 cookie 是前端常用的三种本地数据存储工具,它们之间有些相同点也有些不同点,尤其 `sessionStorage` 有些需要特别注意的地方。
Read Post
shell(bash/zsh/cmd) 变量值使用不同引号的区别
shell 变量值也像 YAML 中的字符串定义一样,在定义时可以不用引号、用单引号、用双引号、还可以用反引号,它们在实际效果上有啥区别、改如何选择呢?
Read Post