Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
type_script [2024/05/04 11:06] tro |
type_script [2024/05/04 11:18] (текущий) tro |
||
---|---|---|---|
Строка 293: | Строка 293: | ||
npm install --save-dev @types/ | npm install --save-dev @types/ | ||
</ | </ | ||
+ | ==== Хуки, які зазвичай не потрібно типізувати ==== | ||
+ | ==== useEffect ==== | ||
+ | useEffect очікує, | ||
+ | < | ||
+ | useEffect(() => { | ||
+ | let isActive = true; | ||
+ | |||
+ | return (): void => { | ||
+ | isActive = false; | ||
+ | }; | ||
+ | }, []); | ||
+ | </ | ||
+ | ==== useMemo ==== | ||
+ | У цьому прикладі ми використовуємо хук useMemo для оптимізації продуктивності. Ми створюємо мемоізоване значення selectedUser, | ||
+ | < | ||
+ | import React, { useMemo } from ' | ||
+ | |||
+ | type User = { | ||
+ | id: number; | ||
+ | name: string; | ||
+ | }; | ||
+ | |||
+ | type Props = { | ||
+ | users: User[]; | ||
+ | selectedUserId: | ||
+ | }; | ||
+ | |||
+ | export function UserList({ users, selectedUserId }: Props) { | ||
+ | const selectedUser = useMemo(() => { | ||
+ | return users.find(user => user.id === selectedUserId); | ||
+ | }, [users, selectedUserId]); | ||
+ | |||
+ | return ( | ||
+ | < | ||
+ | {selectedUser && < | ||
+ | {users.map(user => ( | ||
+ | < | ||
+ | ))} | ||
+ | </ | ||
+ | ); | ||
+ | } | ||
+ | </ | ||
+ | |||