👇 今日要闻
打破信息壁垒,走近全球前端。Hello 大家好,我是林语冰。
最近 Vue 大会正式举行,尤雨溪担任嘉宾发表了重要讲话。
前几年,Pinia 之父有受邀出席 Vue 大会,但今年它可能有事缺席了。因此,就由尤大代替分享了 Pinia 的最新动态。

现在,Pinia 4 正式发布,主要更新包括:
- 只支持标准的纯 ESM 模块
- 安装体积减肥成功
- Pinia Colada 官方插件上线
同时,尤大还爆料自己为了 Vue 自掏腰包,再次成立了一家新公司。
本期我们一起来瞄一下尤大在 Vue 大会分享的 Pinia 4 的主要改动,以及新公司的一些情报。
👉 Pinia 4 更新
Pinia 4 是 Pinia 的第 4 个主版本,主版本升级一般伴随着 不向后兼容 的重大改动。但 Pinia 4 并没有 API 层面的破坏性更新,主要是自身源码架构的升级。
现在,Pinia 库的构建产物只支持标准的 ESM 模块,用法更新如下:

Pinia 4 不再支持 Node.js 的 CommonJS,这也是近年来大多数现代 npm 模块的升级趋势。
其次,Pinia 的安装体积减肥成功,尤大给出的数据是安装包减小了 77%。
开发体验方面,Pinia 4 集成了 nostics 新模块,来优化终端的报错信息,改善开发体验。
以前,终端报错可能只是简单通过 console.warn() 或 console.error() 打印字符串,但对开发者并不友好,可维护性不高。
使用 nostics 模块后,错误诊断会更加方便:

现在,终端报错除了展示错误来源的文件路径,还会提供对应的错误码和文档链接,支持直接跳转到相关纠错资源。
nostics 这个新模块来自 Vercel 实验室,该库的主要维护者就是 Pinia 之父,以及 VueUse 兼 Vitest 的作者 antfu 等大神。
👉 源码重构技巧
Pinia 4 还对旧版 JS API 进行了现代化重构,所有源码都采用了 Object.has() 静态方法,取代了 Object.prototype.hasOwnProperty() 原型方法。
Object.hasOwn() 方法用于判断对象的某个 自有属性 是否存在,它比 hasOwnProperty() 原型方法更鲁棒。
举个栗子:

可以看到,hasOwnProperty() 方法不适用于 空原型的裸对象。
此外,实际开发中,它对于原型链的继承属性判断也不如 Object.hasOwn() 方法精准,存在很多容易踩雷的边缘用例。
Object.hasOwn() 静态方法是 ES2022 上线的新功能,而且晋级 Baseline 可用基线已经超过了两年半,目前兼容性早已到达了 泛用基线。
所以,Pinia 用它来重构没什么兼容性税,源码的可维护性也更好,减少了技术债务。
✅ PS:这个重构技巧大家可以偷学起来,反正我已经在用了~
👉 Pinia Colada 1.0 首发
补充一点尤大没有分享的情报,Pinia 之父今年还上线了新作品 Pinia Colada。

顾名思义,Pinia Colada 是一个 Pinia 官方插件,有道友戏称它有 TanStack Query 的"故人之姿"。
但 Pinia 官方称目前它是唯一一个集成了 Vue Router 数据加载器的库,毕竟 Vue Router 和 Pinia 其实是同一位作者,这自然成为了 Pinia Colada 和其他社区插件有所区别的先天优势。
今年,Pinia Colada 作为基于 Pinia 的 Vue 专属异步状态管理库,第一个主版本 v1.0 正式发布。
Pinia Colada 的基本用法如下:

可以看到,我们还是调用熟悉的 useQuery() API,但无需手写 isLoading 等属性,插件内部封装后会暴露这些接口,不用我们手动封装复杂逻辑。
Pinia Colada 专注于处理 Vue 复杂的异步请求,其优势如下:
- 支持缓存、去重、SWR(过期重验证)等高级请求功能
- 消除数据请求的大量重复模板代码,更符合人体工程学
👉 Vue 源码有限公司
另外,尤大还爆料了自己再次成立另一家公司:Vue 源码有限公司。
之前,尤大为 Vite 生态成立的公司 VoidZero 今年加盟了 Cloudflare 平台,但 Vue 项目并不会直接受益于本次收购的资金扶持。

为此,尤大决定个人出资来赞助 Vue 的全职开源贡献者,新公司本质上是一个开源基金会,但公司管理比基金会更易操作。
目前,尤大的工作重心主要还是在 Vite+ 全家桶和 Void 全栈框架,Vue 很多新功能特别依赖于全职开源成员,举个栗子:
- Vue Vapor 蒸汽模式 - Edison
- Vue 语言服务和 TypeScript 支持 - Johnson
- Vue Signals 新型响应式系统 - Johnson
所以,除了 Vue 已有的开源赞助,尤大决定自掏腰包赞助这些 Vue 专家的开源工作,这样 Vue 项目才能可持续发展。
👇 重点总结

尤大在 Vue 大会上分享了 Pinia 4 和 Vue 源码公司的新动态。
Pinia 4 是 Pinia 的 第 4 个主版本,主要更新包括:
- 只支持 ESM 模块,不再支持 CJS 格式
- 安装体积减少了 77%
- 集成了
nostics新模块,报错信息改良 - Pinia Colada 1.0 首发,这是 Vue 异步请求的高级插件
👍 以上就是本期《前端日报》的全部内容了,如果读完对你有所帮助,可以按赞打卡、在看推荐或转发分享。
🙏 已经关注我的粉丝们,我们下期再见啦,掰掰~~

👇 参考文献:
- 🔗 Pinia 更新日志 :github.com/vuejs/pinia...
- 🔗 Pinia Colada 官网 :pinia-colada.esm.dev