Привет, веб-любители! 🚀 Вы когда-нибудь оказывались в беспорядке проблем управления государством? Не бойтесь, Redux, государственный ниндзя, здесь, чтобы помочь. И не волнуйтесь, это не будет редукцией документов Redux. (Видите, что я там сделал? 😜)

1. Основной принцип

Redux полностью посвящен глобальному управлению состоянием. Представьте себе гигантскую государственную кастрюлю, и каждый компонент получает ковш, чтобы пить из него или добавлять в него. Ммм… государственный суп!

2. Три мушкетера Redux

а. Действия: Дикторы 📣

Это просто объекты JavaScript, описывающие «что произошло».

{
  type: 'ADD_TODO',
  text: 'Learn Redux'
}

б. Редьюсеры: Менеджеры 💼

Чистые функции, диктующие, «как изменяется состояние».

function todos(state = [], action) {
  switch (action.type) {
    case 'ADD_TODO':
      return [...state, action.text]
    default:
      return state
  }
}

в. Магазин: The Grand Repository 📦

Содержит состояние вашего приложения и отправляет действия.

import { createStore } from 'redux';
const store = createStore(todos, ['Use Redux']);

3. Освоение промежуточного программного обеспечения

Это как вышибала возле ночного клуба. Проверка действий до того, как они дойдут до редукторной стороны. Общий? redux-thunk позволяет отправлять функции (а не только объекты).

4. Соединение Redux с React

react-redux это клей. Обеспечивает Provider и connect!

  • Поставщик: охватывает ваше приложение React, обеспечивая доступ каждого компонента к хранилищу.
  • connect: как пуповина для вашего компонента. Подает состояние и отправляет действия.
import { connect } from 'react-redux';
const mapStateToProps = state => ({ todos: state.todos });
const mapDispatchToProps = dispatch => ({ addTodo: text => dispatch(addTodo(text)) });
export default connect(mapStateToProps, mapDispatchToProps)(TodoApp);

5. Преимущества производительности

  • Непротиворечивое состояние: один источник правды — больше никаких зануд!
  • Оптимизация. Используя такие инструменты, как Reselect, вы можете эффективно извлекать данные из хранилища Redux.

6. Redux DevTools: Спаситель

Проверяйте состояние, отслеживайте изменения и отлаживайте во времени. Да, вы не ослышались — путешествие во времени!

const store = createStore(
  rootReducer,
  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);

7. Будущее?

В то время как Redux является королем для больших приложений, контекстный API React и новые инструменты встряхивают ситуацию! В курсе!

Хорошо, начинающий Reduxian, вот оно. Небольшой ускоренный курс по Redux. Погрузитесь глубже, если вы жаждете; горшок для супа Redux большой и ароматный.

Теперь, если вы нашли это проницательным, дайте мне крик в мой Медиум, Твиттер или LinkedIn. Или просто поделитесь им с другими странствующими душами в мире веб-разработки! 🌐 Будьте здоровы и продолжайте работу над кодом! 🍻🖥️