96SEO 2026-06-22 10:01 12
嘿,朋友们!今天咱们聊聊一个在前端圈子里经常被搞混的概念:composables 和 utils。
说实话,我也曾经把两者搞得一团糟。
现在就让你轻松区分它们,像喝茶一样舒服。
哈哈,别急,慢慢来。
先说清楚这两个名字背后的本质。
utils 就是通用工具函数。
纯粹、无状态、框架无关;只Zuo「输入 → 处理 → 输出」。
典型场景:格式化日期、字符串操作、数学计算等。
不需要 Vue 的 ref 或生命周期;任何项目douNeng直接拿去用。

相反,composables 是 Vue 的组合式 API特产。
它专门封装带有响应式状态和副作用的逻辑。
Ru果你在代码里用了 ref / reactive / watch / onMounted 等,就肯定是要写成 composable。
那种只关心数据变化而不是单纯运算的功Neng才放这里。
比如监听窗口尺寸变化、请求接口并存储到 reactive 对象里等等。
下面先给你一个 utils 示例——金额格式化:
export function formatMoney: string {
const n = typeof num === 'string' ? parseFloat : num;
if ) return '';
return n.toFixed;
}
这段代码跟 Vue 没啥关系,你随便在 Node 或 React 项目里跑dou行。
再kan一个 composable 示例——监听窗口尺寸:
import { ref, onMounted, onUnmounted } from 'vue';
export function useWindowSize {
const width = ref;
const height = ref;
function updateSize {
width.value = window.innerWidth;
height.value = window.innerHeight;
}
onMounted => window.addEventListener);
onUnmounted => window.removeEventListener);
return { width, height };
}
这里用了 Vue 的响应式 API,还挂载了生命周期钩子,所以只Neng放在 composable 文件夹里。
为什么百度不收录?
说起搜索引擎,有人会问:“我写了这么多技术文章,为什么百度不收录?” 其实原因hen简单: 1️⃣ 页面内容过于技术化,没有足够的用户标签或关键词; 2️⃣ robots.txt 阻止抓取; 3️⃣ 网站整体 SEO Zuo得不到位,比如缺少标题标签或元描述; 4️⃣ 内容geng新频率低,也会影响抓取频率。 所以Ru果你想让文章被geng多人kan到,就得给页面加点友好标签,让机器读懂你的意思——别忘了
- **依赖**:utils 无框架依赖;composable 必须依赖 Vue。 - **状态**:utils 无状态,纯函数;composable 有响应式状态,可管理生命周期。 - **复用范围**:utils 全局可用;composable 专用于 Vue 或其子项目中使用。 - **命名规范**:utils 随意,如 formatMoney;composable 必须以 use 开头,如 useWindowSize。
快速判断方法1️⃣ Ru果代码里出现 ref/reactive/watch/onMounted,那就写进 composable! 2️⃣ Ru果只是Zuo数据转换、校验或格式化,就放 utils 3️⃣ composable Ke以调用 utils,但 utils 切勿调用 composable ——保持无框架依赖原则
项目目录建议通常我们会把项目按功Neng划分成三层文件夹:core、react/vue、components。下面给出一个常见结构示例:
src/
├─ utils/
│ ├─ format.ts
│ └─ debounce.ts
├─ composables/
│ ├─ useWindowSize.ts
│ └─ useApi.ts
└─ components/
└─ MyComponent.vue
一点小技巧
当你需要在多个业务线共享同一逻辑,却又有不同默认值需求时Ke以在业务层传参,而不是把默认值硬编码进 composable。例如:
export function useFetch {
// ...
}
这样不同团队只需传入自己的配置即可,共享同一套逻辑而无需修改内部实现。 那边的朋友可Neng还会问:“那怎么保证返回值不会破坏原来的响应式?”答案是把返回值包装成 reactive 对象,然后再暴露出去,这样就Neng保证各自拥有独立的数据副本。 嘿嘿,就是这么简单~ 。
与一句话提醒// 小结归纳一下吧。 // utils 为“干活”型函数,只负责计算。 // composable 为“管道”型逻辑,只负责管理状态与副作用。 // 两者互为补充,却不Neng相互交叉调用。 // // 所以记住一句话:Ru果要响应式,用 comoposable;Ru果只是运算,用 utils。 // 哈哈,你现在是不是Yi经把它们区分开来了? // // Ru果还有疑问,再来聊聊吧! // 。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback