mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
321 字
1 分钟
Composition API:逻辑复用的快乐与痛苦
2026-01-05

组合式 API:双刃剑#

Composition API 是 Vue 3 的灵魂。它允许我们将逻辑通过 Hooks(Composables)的方式进行提取和复用。

理想很丰满#

我想象中的代码:

const { user } = useUser()
const { articles } = useArticles()
const { loading } = useLoading()

清爽、干净、模块化。

现实很骨感#

实际写出来的代码:

const { user, loading: userLoading, error: userError } = useUser()
const { articles, loading: articleLoading, error: articleError } = useArticles()
// 命名冲突!到处重命名!

而且,如果你把所有逻辑都堆在 setup 里,不加以拆分,它就会变成一个巨大的面条代码(Spaghetti Code),比 Options API 还要难以维护。因为 Options API 至少强制你分开了 data 和 methods。严格来说实际上只要你不在乎史山代码,你完全可以不在乎getter和setter,全放在utils里面,所有的state变量都塞在一个const里面。

令人头秃的细节#

Composable 不是独立组件,它在调用方的 setup 阶段同步执行,里面注册的 onMounted 也属于调用它的那个组件。异步任务则要自己暴露 loadingerror 和取消逻辑,不能靠调用顺序猜完成时间。我以前写 C++ 更多,被异步状态狠狠摆过一道;后来把“注册副作用”和“等待结果”分开看,脑子终于顺了。

API

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Composition API:逻辑复用的快乐与痛苦
https://blog.luozili.work/posts/vue-learning-8/
作者
llbzow
发布于
2026-01-05
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录

💬
🎀