Видео-курс по Redux
2 года назад·1 мин. на чтение
Видео-курс по Redux, в котором разбираемся как работать с Redux в React приложении.
1. Все что нужно знать о Redux
Это видео - быстрый старт в Redux, и оно поможет понять все основные концепции Redux. Здесь мы разберем что такое Redux, основные понятия Redux и три его принципа. Поговорим об Actions, Dispatch, Reducer, Store и узнаем о Redux data flow. Смотреть на Rutube2. Добавляем Redux в React приложение быстро: useSelector
, useDispatch
В этом видео добавляем Redux в ReactJS приложение todo app. Пишем редьюсеры (reducers) и диспатчим экшены (dispatch actions). Используем redux hooks API, такие как useSelector
, useDispatch
.
Смотреть на Rutube
3. Что такое Action Creator в Redux?
В этом видео пишем action creators в React Redux приложении и используем их вdispatch
. Пишем функцию для создания action creators.
Смотреть на Rutube
4. Что такое Redux Middleware?
В этом видео разбираем middleware в Redux. Пишем кастомные middleware для логирования и отложенного выполнения действия. Смотреть на Rutube5. Функция next в Redux Middleware
В этом видео подробно разбираем функциюnext
в middleware Redux, смотрим как получить значение возвращенное из dispatch и пишем функцию для получения значений всех middleware.
Смотреть на Rutube
Исходный кодЧистые компоненты в React
2 года назад·2 мин. на чтение
В этой статье рассмотрим чистые компоненты в функциональных компонентах ReactJS.
Чистый компонент в React — это компонент, который всегда рендерит одно и то же при одних и тех же значениях пропсов. Это серьезно улучшает производительность. React будет использовать результат последнего рендера, избегая повторного рендеринга.
Рассмотрим компонент
Теперь поработаем с
Чистые компоненты названы так по аналогии с чистыми функциями.
Если мы вызовем вышеуказанную функцию
React.memo
React.memo — это компонент высшего порядка (higher-order component, HOC). Когда компонент отображает тот же вывод при одних и тех же пропсах, вы можете обернуть свой функциональный компонент этой функциейReact.memo
. За счет этого улучшится производительность и оптимизируется рендеринг.
React.memo
работает только при изменении пропсов компонента. Это означает, что если вы используете состояние, используя хук useState
, то для каждого изменения состояния он будет ререндерить компонент. С React.memo
выполняется поверхностное сравнение пропсов.
CustomLabel
и Counter
, внутри которого используется CustomLabel
.
// CustomLabel.jsx import React from "react"; export const CustomLabel = ({ name }) => { return ( <> {console.log("CustomLabel component render")} <label> <b>{name}</b> </label> </> ); };
Компонент// Counter.jsx import React, { useState } from "react"; import CustomLabel from "./CustomLabel"; export const Counter = () => { const [counter, setCounter] = useState(0); return ( <div> <CustomLabel name="Simple Counter app" /> <p>Counter is: {counter}</p> <button onClick={() => setCounter(counter + 1)}>Click</button> </div> ); };
CustomLabel
принимает name
в качестве пропса и отображает его в теге label
. В компонент CustomLabel
мы добавили console.log()
, чтобы мы могли видеть, сколько раз компонент ререндерится. Всякий раз, когда вы нажимаете кнопку, чтобы увеличить счетчик, он повторно рендерит компонент CustomLabel
.
React.memo
. Обернем компонент CustomLabel
в React.memo
и снова будем нажимать счетчик. Увидим, что он отрендерил компонент CustomLabel
только один раз, потому что проп name
остается неизменным при каждом нажатии кнопки.
// CustomLabel.jsx import React, {memo} from "react"; export const CustomLabel = memo(({ name }) => { return ( <> {console.log("CustomLabel component render")} <label> <b>{name}</b> </label> </> ); });
Что такое чистые функции?
В Javascript функции, которые возвращают один и тот же вывод при одних и тех же входных данных, называются чистыми функциями. Таким образом, результат чистой функции зависит только от ее входных аргументов. Чистые функции также не вызывают никаких побочных эффектов. Рассмотрим чистую функциюadd
.
function Add(num1, num2){ return num1 + num2; }
add(2,2)
, она всегда будет возвращать 4. Если вызвать ее несколько раз с параметрами 2 и 2, она всегда будет возвращать 4. Благодаря тому что функция чистая можно оптимизировать и улучшить производительность приложения.
Еще подробнее о чистых функциях можно прочитать в статье Чистые функции. Функциональное программирование.