<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>知行博客</title>
    <link>http://localhost:5051</link>
    <description>知行博客 - 文章与项目</description>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 10 Jun 2026 10:08:20 GMT</lastBuildDate>
    <atom:link href="http://localhost:5051/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title><![CDATA[React 学习笔记：Callback Hook]]></title>
      <link>http://localhost:5051/articles/use-callback</link>
      <guid isPermaLink="true">http://localhost:5051/articles/use-callback</guid>
      <description><![CDATA[## useCallback 基础

### 什么是 useCallback？

`useCallback` 是 React 提供的**性能优化 Hook**，用于缓存函数定义。它的核心思想是：

> **如果依赖项没有变化，就直接返回上次的函数引用，避免重复创建新函数。**

简单来说，`useM]]></description>
      <pubDate>Tue, 09 Jun 2026 14:56:28 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：Memo Hook]]></title>
      <link>http://localhost:5051/articles/use-memo</link>
      <guid isPermaLink="true">http://localhost:5051/articles/use-memo</guid>
      <description><![CDATA[## useMemo 基础

### 什么是 useMemo？

`useMemo` 是 React 提供的**性能优化 Hook**，用于缓存计算结果。它的核心思想是：

> **如果依赖项没有变化，就直接返回上次计算的结果，避免重复计算。**

这种"缓存返回值以避免重复计算"的做法，在计算机科]]></description>
      <pubDate>Tue, 09 Jun 2026 14:47:20 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：useEffectEvent]]></title>
      <link>http://localhost:5051/articles/use-effect-event</link>
      <guid isPermaLink="true">http://localhost:5051/articles/use-effect-event</guid>
      <description><![CDATA[## 概述

`useEffectEvent` 是 React 19 引入的一个新 Hook，用于将 Effect 中的"事件处理逻辑"与"副作用逻辑"分离。它解决了一个常见问题：**如何在 Effect 中读取最新的 props 或 state，而不导致 Effect 重新运行**。

## 核心]]></description>
      <pubDate>Mon, 08 Jun 2026 06:10:46 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：useLayoutEffect Hook]]></title>
      <link>http://localhost:5051/articles/use-layout</link>
      <guid isPermaLink="true">http://localhost:5051/articles/use-layout</guid>
      <description><![CDATA[## useLayoutEffect 基础

### 什么是 useLayoutEffect？

`useLayoutEffect` 是 `useEffect` 的一个**同步版本**，它会在**浏览器重新绘制屏幕之前**执行。

- `useEffect`：在浏览器完成绘制**之后**异步执行（不]]></description>
      <pubDate>Mon, 08 Jun 2026 06:08:19 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：Effect Hook]]></title>
      <link>http://localhost:5051/articles/use-effect</link>
      <guid isPermaLink="true">http://localhost:5051/articles/use-effect</guid>
      <description><![CDATA[## useEffect 基础

### 什么是副作用（Side Effect）？

在 React 中，组件的主要职责是**根据 state 和 props 渲染 UI**。但实际应用中，组件还需要做一些"额外的事情"：

- 发送网络请求（获取数据）
- 操作 DOM（修改标题、聚焦输入框）
-]]></description>
      <pubDate>Fri, 05 Jun 2026 05:19:19 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：Ref Hook]]></title>
      <link>http://localhost:5051/articles/use-ref</link>
      <guid isPermaLink="true">http://localhost:5051/articles/use-ref</guid>
      <description><![CDATA[## useRef 基础

### 基本用法

`useRef` 是 React 的核心 Hook，用于引用一个不需要渲染的值。它返回一个可变的 ref 对象，其 `.current` 属性被初始化为传入的参数。

```jsx
import { useRef } from 'react';

fu]]></description>
      <pubDate>Wed, 03 Jun 2026 10:01:05 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：Reducer Hook]]></title>
      <link>http://localhost:5051/articles/use-reducer</link>
      <guid isPermaLink="true">http://localhost:5051/articles/use-reducer</guid>
      <description><![CDATA[## useReducer 基础

### 基本用法

`useReducer` 是 React 的另一个核心 Hook，用于管理复杂的状态逻辑。它通过 reducer 函数来集中管理状态更新。

```jsx
import { useReducer } from "react";

// 定义 r]]></description>
      <pubDate>Wed, 03 Jun 2026 09:54:54 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：State Hook]]></title>
      <link>http://localhost:5051/articles/use-state</link>
      <guid isPermaLink="true">http://localhost:5051/articles/use-state</guid>
      <description><![CDATA[## useState 基础

### 基本用法

`useState` 是 React 的核心 Hook，用于在函数组件中添加状态变量。

```jsx
import { useState } from "react";

function Counter() {
  // 声明状态变量 coun]]></description>
      <pubDate>Wed, 03 Jun 2026 09:15:59 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：脱围机制]]></title>
      <link>http://localhost:5051/articles/escape-hatches</link>
      <guid isPermaLink="true">http://localhost:5051/articles/escape-hatches</guid>
      <description><![CDATA[## 使用 ref 引用值

### 核心概念

ref 用于让组件"记住"某些信息，但**不触发重新渲染**。它是 React 单向数据流的"脱围机制"。

### useRef 基本用法

```js
import { useRef } from 'react';

const ref = us]]></description>
      <pubDate>Tue, 02 Jun 2026 09:49:31 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：状态管理]]></title>
      <link>http://localhost:5051/articles/managing-state</link>
      <guid isPermaLink="true">http://localhost:5051/articles/managing-state</guid>
      <description><![CDATA[## 用 State 响应输入

### 核心思想

React 采用**声明式 UI** 编程方式，开发者只需声明组件可以处于的不同状态，React 会自动计算如何更新 UI。

### 声明式 vs 命令式

| 命令式 | 声明式 |
|--------|--------|
| 直接操作 DO]]></description>
      <pubDate>Tue, 02 Jun 2026 03:24:15 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：添加交互]]></title>
      <link>http://localhost:5051/articles/adding-interactivity</link>
      <guid isPermaLink="true">http://localhost:5051/articles/adding-interactivity</guid>
      <description><![CDATA[## 响应事件（Responding to Events）

React 通过在 JSX 中添加**事件处理函数**来实现交互能力。事件处理函数是自定义函数，会在用户进行交互（点击、悬停、表单输入等）时被触发。

---

### 1. 添加事件处理函数的三种方式

**方式一：单独定义函数**

]]></description>
      <pubDate>Mon, 01 Jun 2026 02:50:16 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[React 学习笔记：描述 UI]]></title>
      <link>http://localhost:5051/articles/describing-the-ui</link>
      <guid isPermaLink="true">http://localhost:5051/articles/describing-the-ui</guid>
      <description><![CDATA[
> React应用是有被称为**组件**的独立UI片段构建而成。React组件本质上是可以任意添加标签的JavaScript函数。

## 1. 你的第一个组件

### 核心概念
- **组件 = React 的核心构建块**，是可复用的 UI 元素
- 组件本质是 **JavaScript 函]]></description>
      <pubDate>Thu, 28 May 2026 15:24:33 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Vite+React环境构建]]></title>
      <link>http://localhost:5051/articles/manual-setup-vite-react-from-scratch</link>
      <guid isPermaLink="true">http://localhost:5051/articles/manual-setup-vite-react-from-scratch</guid>
      <description><![CDATA[> 在学习React之前需要一个可以开发验证的react环境。这里使用vite进行构建，为了进一步了解vite的作用原理，不使用create-vite工具进行构建。手动开始构建一个可运行的环境。

## 初始化package安装依赖

### 初始项目

使用``pnpm init``初始packa]]></description>
      <pubDate>Wed, 27 May 2026 14:07:21 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[新版博客迁移]]></title>
      <link>http://localhost:5051/articles/essay1</link>
      <guid isPermaLink="true">http://localhost:5051/articles/essay1</guid>
      <description><![CDATA[随着AI的不断发展，它已经从最初的“协助者”，逐渐演变为一个“完全开发者”。这导致我在开发时，很多时候都不愿再主动思考和学习——遇到任何问题，第一反应就是丢给AI去解决。久而久之，我意识到，这种依赖正在让自己原本的能力慢慢退化。

因此，我打算重新整理之前的笔记博客，重新开始主动学习和记录。AI的强]]></description>
      <pubDate>Tue, 26 May 2026 15:02:45 GMT</pubDate>
    </item>
  </channel>
</rss>