Skip to content
Serbipunk edited this page May 3, 2026 · 2 revisions

useState

useState 是 React 最基础的 Hook,用来给组件添加响应式状态——状态变化时组件会自动重新渲染。

基本用法

const [value, setValue] = useState(initialValue); value — 当前状态值 setValue — 更新状态的函数(调用它才会触发重渲染) initialValue — 初始值,只在组件第一次渲染时用一次

understanding ts' function useTexture

export declare function useTexture<Url extends string[] | string | Record<string, string>>(input: Url, onLoad?: (texture: MappedTextureType<Url>) => void): MappedTextureType<Url>;

useTexture 本身利用了 React 的 Suspense 机制——加载期间它会让组件"挂起",加载完成后组件才渲染。所以从组件的角度看

名字 常见含义
onLoad 加载完成
onClick 点击
onChange 值改变
onSubmit 提交

你看的 Texture.d.ts 是 类型声明文件,它只描述"函数长什么样",不包含任何实现逻辑。这是 TypeScript 的设计——类型和实现分离。

真正的实现在我们之前读过的 Texture.js,两个文件的关系是:

文件 作用 Texture.d.ts 告诉 TypeScript 类型是什么,编辑器用来做补全和报错 Texture.js 真正运行的代码,包含 useLayoutEffect、useLoader 等逻辑 .d.ts 文件在运行时完全不存在,打包后只有 .js 会被执行。

可以用c lang类比,Texture.d.ts 是 Texture.js 的头文件

完全正确,这个类比非常准确。

C TypeScript .h 头文件 .d.ts 声明文件 .c / .cpp 实现文件 .js 实现文件 #include "texture.h" import 时 TS 自动读取 .d.ts 就像 C 里头文件只写函数签名、结构体定义,.c 文件才是真正的逻辑,.d.ts 也只描述形状,.js 才跑代码。

Clone this wiki locally