You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue 3 组合式函数(Composable)能否导出多个函数?

Vue组合式函数文件可导出多个函数的说明

当然不属实,单个.ts组合式函数文件完全支持导出多个组合式函数,这是日常开发中很常见的写法——尤其当多个函数功能关联、属于同一业务领域时,放在同一个文件里更便于归类维护。

示例代码:单个文件导出多个组合式函数

// composables/useUser.ts
import { ref, computed } from 'vue'

// 组合式函数1:处理用户基础信息
export function useUserProfile() {
  const userName = ref('')
  const userAge = ref(0)
  const isAdult = computed(() => userAge.value >= 18)

  const updateName = (newName: string) => {
    userName.value = newName
  }

  return { userName, userAge, isAdult, updateName }
}

// 组合式函数2:处理用户权限逻辑
export function useUserPermissions() {
  const permissions = ref<string[]>([])

  const hasPermission = (perm: string) => {
    return permissions.value.includes(perm)
  }

  const addPermission = (perm: string) => {
    if (!permissions.value.includes(perm)) {
      permissions.value.push(perm)
    }
  }

  return { permissions, hasPermission, addPermission }
}

组件中导入使用示例

<script setup lang="ts">
import { useUserProfile, useUserPermissions } from '@/composables/useUser'

// 按需解构导入的组合式函数返回值
const { userName, updateName, isAdult } = useUserProfile()
const { hasPermission, addPermission } = useUserPermissions()

// 业务逻辑调用
updateName('Alice')
addPermission('edit_post')
console.log(isAdult.value) // false(初始userAge为0)
console.log(hasPermission('edit_post')) // true
</script>

如果多个组合式函数之间存在依赖关系,也可以在同一个文件内互相调用(注意避免循环依赖即可),进一步复用逻辑。

内容的提问来源于stack exchange,提问作者Norm Strassner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 15:10:39