Чистые компоненты и отказ от побочных эффектов при отрисовке
Пишите функции отрисовки без мутаций и чтения внешних данных
«Чистые компоненты и отказ от побочных эффектов при отрисовке» — бесплатный урок React Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения React Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс React Academy содержит 4 уроков всего.
Добро пожаловать
Что такое чистая функция
Почему чистота важна в React
Распространённое нарушение чистоты: изменение внешнего состояния
let totalRenders = 0; // external
function Counter() {
totalRenders++; // BAD: side effect in render
return <p>{totalRenders}</p>;
}Распространённое нарушение чистоты: изменение свойств
// Bad
function Badge({ user }) {
user.name = user.name.toUpperCase(); // mutates prop!
return <p>{user.name}</p>;
}
// Good
function Badge({ user }) {
const displayName = user.name.toUpperCase();
return <p>{displayName}</p>;
}Распространённое нарушение чистоты: использование случайных значений и дат во время render
// Bad
function Token() {
const id = Math.random(); // different every render!
return <p>{id}</p>;
}
// Good
function Token() {
const [id] = useState(() => Math.random());
return <p>{id}</p>;
}Вызовы программного интерфейса выполняются в useEffect
// Bad
function Profile({ id }) {
fetch('/api/user/' + id); // runs on every render!
return <div />;
}
// Good
useEffect(() => {
fetch('/api/user/' + id).then(/*...*/);
}, [id]);Локальные изменения допустимы
function List({ items }) {
const sorted = [...items]; // new array
sorted.sort(); // mutating a local copy: OK
return sorted.map(i => <li key={i}>{i}</li>);
}Поиск нарушений чистоты с помощью строгого режима
Чистые компоненты и React.memo
const Pure = React.memo(function Pure({ value }) {
return <p>{value}</p>;
});Быстрая проверка
Итоги
Далее
Часто задаваемые вопросы
Урок «Чистые компоненты и отказ от побочных эффектов при отрисовке» бесплатный?
Да — полный текст урока «Чистые компоненты и отказ от побочных эффектов при отрисовке» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс React Academy, подпишись на CoddyKit PRO. Курс React Academy содержит 4 уроков всего.
Чему я научусь в уроке «Чистые компоненты и отказ от побочных эффектов при отрисовке»?
Пишите функции отрисовки без мутаций и чтения внешних данных Ты практикуешь React Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать React Academy?
Предыдущий опыт не требуется. React Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Чистые компоненты и отказ от побочных эффектов при отрисовке»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке React Academy?
Да. Каждый урок React Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что делает StrictMode
- Чистые компоненты и отказ от побочных эффектов при отрисовке
- Лучшие практики для ключей и ссылок
- Структура папок и соглашения об именовании