👉 尤雨溪再次成立新公司,同时官宣 Pinia 4 正式发布!

👇 今日要闻

打破信息壁垒,走近全球前端。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 异步请求的高级插件

👍 以上就是本期《前端日报》的全部内容了,如果读完对你有所帮助,可以按赞打卡、在看推荐或转发分享。

🙏 已经关注我的粉丝们,我们下期再见啦,掰掰~~

👇 参考文献:

相关推荐
浮生望1 小时前
React useRef 深度解析:从DOM操作到Web Worker多线程协作
前端
浮生望1 小时前
React Router v7 实战全景:路由配置、嵌套路由、鉴权守卫与懒加载完整指南
前端
用户938515635071 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战(二)
前端·javascript·typescript
雪隐1 小时前
个人电脑玩AI-16让5060 Ti给你打工——MiniMax H3 提速实录:从"泡杯茶等视频"到"视频等你",一张 5060 Ti 的自我修养
前端·人工智能·后端
FungLeo2 小时前
Flutter Web 中文字体困境与渲染器选择:CanvasKit vs HTML renderer 实战
前端·flutter·html
BD_Marathon2 小时前
部署Spark
大数据·javascript·spark
敲代码的玉米C2 小时前
我修的那个 bug,制造了另一个 bug
前端·人工智能·架构
gis开发之家2 小时前
《Vue3 从入门到大神50篇》Vue3 源码详解(二十):生命周期钩子源码解析 —— onMounted / onUpdated 如何实现?
前端·javascript·前端框架·vue3·vue3源码
全栈项目管理程序猿2 小时前
ArcGIS JS 基础教程(9):天空盒与大气效果
javascript