---
title: "#hooks — Blog"
description: "Posts tagged \"hooks\"."
image: "https://zengliangyi.com/og/blog/tag/hooks.png"
---

Tag

# #hooks

1 post tagged "hooks".

[All posts](/en/blog)

- [#hooks](/en/blog/tag/hooks)

- [#ChatCrystal](/en/blog/tag/chatcrystal)

- [#Node.js](/en/blog/tag/node-js)

- [#TypeScript](/en/blog/tag/typescript)

- [#SQLite](/en/blog/tag/sqlite)

- [#AI](/en/blog/tag/ai)

- [#Data parsing](/en/blog/tag/data-parsing)

- [#Knowledge management](/en/blog/tag/knowledge-management)

- [#MCP](/en/blog/tag/mcp)

- [#Claude Code](/en/blog/tag/claude-code)

[##  Stable React Event Subscriptions: useEffect to useEffectEvent

Prevent WebSocket, EventEmitter, and DOM listeners from resubscribing on every callback change, using a ref proxy or React 19.2 useEffectEvent.          曾亮懿       March 16, 2026      4 min read

#React

#hooks

#event subscriptions](/en/blog/react-stable-event-subscriptions)

##  From writing to code

Explore ChatCrystal, developer tools and daily learning notes on my GitHub. Questions about the implementation are welcome.

[Visit my GitHub](https://github.com/ZengLiangYi)

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "ZengLiangYi Blog",
  "alternateName": [
    "Zeng Liangyi",
    "ZengLiangYi",
    "zengliangyi.com"
  ],
  "url": "https://zengliangyi.com",
  "description": "曾亮懿的个人网站。记录 AI Native 探索、开发者工具与全栈产品实践。"
}
```
