# 认识 Hooks

URL: https://caijiao.org/claude-code-in-action/13-introducing-hooks
Source: docs/claude-code-in-action/13-introducing-hooks.md
Description: 了解 Claude Code Hooks 的概念、用途和工作原理，学习如何在特定场景下自定义行为

原文链接：[https://anthropic.skilljar.com/claude-code-in-action/303244](https://anthropic.skilljar.com/claude-code-in-action/303244)

**标签：** 视频 + 讲义

---

Hooks 是 Claude Code 的一个强大功能，允许你自定义 Claude 在特定场景下的行为。通过 Hooks，你可以在 Claude 执行操作前或后自动运行代码，实现高度定制化的开发体验。

## 什么是 Hooks

Hooks 本质上是事件驱动的自动化脚本。它们在特定事件发生时触发执行，例如：

- Claude 即将修改文件之前
- Claude 执行了某项操作之后
- 用户发送消息之前
- 会话开始或结束时

![Hooks 工作流程](https://everpath-course-content.s3-accelerate.amazonaws.com/instructor%2Fa46l9irobhg0f5webscixp0bs%2Fpublic%2F1750967942%2F013_-_Introducing_Hooks_02.1750967942095.png)

## Hooks 能做什么

Hooks 可以实现很多有用的功能：

- **自动格式化**：保存文件后自动运行 Prettier
- **测试验证**：修改代码后自动运行测试
- **类型检查**：提交前检查 TypeScript 类型
- **安全扫描**：检测敏感信息泄露
- **文档同步**：更新代码后自动更新文档

## 为什么 Hooks 很有价值

在没有 Hooks 的情况下，你可能需要：

1. 手动运行格式化命令
2. 手动执行测试
3. 手动检查类型
4. 手动验证代码质量

Hooks 自动化了这些流程，让 Claude 可以在适当时机自动执行，确保代码质量的同时减少重复操作。

## 使用场景示例

一个典型的开发场景：

```
你要求 Claude 添加新功能 → Claude 制定计划 → 
在修改文件前，Hooks 自动运行 linter → 
Claude 执行修改 → 修改后 Hooks 自动运行测试
```

整个过程中，你只需要与 Claude 对话，其余由 Hooks 自动处理。

---

**下一节：** [14 定义 Hooks](./14-defining-hooks)
