Composition API 编程思想
组合式 API (Composition API) 是一系列 API 的集合,使我们可以使用函数而不是声明选项的方式书写 Vue 组件。
在刚接触 Vue3 的时候,由于了解到 Vue3 最大的变化就是提供了全新的 composition api,因此在初上手的时候,所有组件清一色用的都是 <script setup>
+ coposition api 编写,想着多用新特性总没错。在经历了一段时间的使用后,才逐渐有了一些自己的理解。
在我看来,组合式 API 不是 Vue3 的必须品,它有些时候更像一种编码思维,在该用到的地方使用会给你提升十分多的效率,但如果是为了用而用,在大多数简单的场景下,可能选项式 API 会显得更简单无脑一些,因为它给你列好了框架,手把手教你该把代码放在哪里。官方的原话是:
组合式 API 让你可以像编写普通的 JavaScript 那样来编写组件代码。这意味着你能够,并且应该在写组合式 API 的代码时也运用上所有普通 JavaScript 代码组织的最佳实践。如果你可以编写组织良好的 JavaScript,你也应该有能力编写组织良好的组合式 API 代码。
我们平时经常说 Vue 比 React 简单,React 提倡 All in JS 的理念,高度自由的情况下同时也对开发者的 JS 能力提出了要求,这有点像组合式 API 和 选项式 API 的取舍了。
在我看来,选项式 API 和 组合式 API 没有绝对的好坏,即便你是选项式 API 的忠实拥趸,我的意思并不是要强迫大家都去用组合式 API,但组合式 API 编程的思想是可以学习的。有了逻辑封装的思想后,即使你用 provide / inject 一样可以写出同样效果的代码,只是说你用组合式 API 后代码的组合会显得更加明显罢了,因为组合式 API 需要明确的 import,用 provide / inject 可没有 command + 右键点击直接跳转的能力。