在 Vue 3 中,官方不再推荐使用 mixin
。虽然 Vue 3 仍然支持 mixin
,但它被视为一种不推荐的模式,并且在一些情况下可能导致代码维护和理解上的困难。
如果你在 Vue 3 中希望实现代码的复用和共享逻辑,推荐使用 Composition API
来替代 mixin
。我们利用组合式api的特点,他们抽象出来,可以单独建个文件夹和文件, 然后进行封装(自定义的 hook函数一般取名是以use开头),把得到函数写在一个单独的模块中,导出,以供复用.
//小案例
import { showToast } from 'vant'
import { ref } from 'vue'
import type { FollowType } from '../types/consult'
import { followDoc } from '../services/consult'
export const useFollow = (type: FollowType) => {
const loading = ref(false)
const follow = async (item: { id: string; likeFlag: number }) => {
loading.value = true
await followDoc(item.id, type)
item.likeFlag = item.likeFlag ? 0 : 1
showToast('操作成功')
loading.value = false
}
return {
follow,
loading
}
}
使用 Composition API
的主要优点包括:
-
更直观的逻辑组织:
Composition API
允许根据功能和关注点来组织代码,使得逻辑更加清晰和直观。 -
更好的代码复用:通过将逻辑抽象为可复用的函数,可以在多个组件中共享和组合这些函数,实现更高效的代码复用。
-
更好的类型推断:由于
Composition API
使用函数组合的方式来组织逻辑,因此可以更准确地推断函数的类型和返回值。 -
更好的代码维护性:
Composition API
使得逻辑更加集中和可测试,减少了对全局作用域的依赖,从而提高了代码的可维护性。