大型Vue3项目中setup函数的关键在于组织方式,应按业务能力划分组合函数、统一命名规范、明确输入输出、标准化响应式声明及setup内部结构顺序,并通过ESLint、目录约束和CI流程保障落地。
在大型 Vue3 项目中,setup 函数本身不是负担,关键在于组织方式。它不强制你把所有逻辑塞进一个函数里,而是提供了一套可拆、可复、可追踪的结构基础。清晰统一的核心,是把“功能边界”变成代码边界,而不是靠注释或命名约定来维系。
把关联的状态、方法、副作用封装成独立的组合函数,每个函数只负责一个明确的能力域。比如用户管理页不需要知道订单分页怎么请求,只需要调用 useUserList() 和 useOrderList()。
use 开头,如 useAuth、useFormValidate、useTablePagination
props 或 context
data、loading、fetch)避免混用 ref 和 reactive 导致理解成本上升。团队需约定:
ref,如 const searchKeyword = ref('')
reactive,如 const formData = reactive({ name: '', email: '' })
setup 中写裸变量(如 let count = 0),所有需要响应式的都必须显式声明每个组件的 setup 函数保持固定阅读流,降低新成员上手成本:
props 和 context(如 emit、slots)useHeader → useMainTable → useSidePanel)return,按“数据 → 方法 → 其他”分组,用空行隔开光靠自觉难维持长期统一,需工具链辅助:
@vue/eslint-config-typescript + 自定义规则)检查 ref/reactive 使用是否合规composables/useXxx.ts 存组合函数,components/xxx/index.vue 只负责组装和模板setup 函数长度(建议不超过 80 行),超长则提示需拆分为组合函数