Пост про Spread и Rest операторы в JavaScript 🌟
JavaScript предоставляет два мощных оператора для работы с массивами, объектами и параметрами функций — Spread (
🟢 Spread оператор (
Spread оператор расширяет (разворачивает) элементы массива или свойства объекта:
1. Массивы:
2. Объекты:
3. Функции:
🔴 Rest оператор (
Rest оператор собирает оставшиеся аргументы в массив. Используется в функциях и деструктуризации:
1. Параметры функций:
2. Деструктуризация:
📝 Когда использовать?
- Spread: когда нужно разворачивать массивы или объекты.
- Rest: когда нужно собрать неограниченное количество аргументов или оставшиеся элементы.
Использование этих операторов помогает сделать код более гибким и удобным в работе с данными! 🎉
Тэги: #javascript
JavaScript предоставляет два мощных оператора для работы с массивами, объектами и параметрами функций — Spread (
...
) и Rest (...
). Несмотря на одинаковый синтаксис, они используются для разных целей.🟢 Spread оператор (
...
)Spread оператор расширяет (разворачивает) элементы массива или свойства объекта:
1. Массивы:
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5]; // [1, 2, 3, 4, 5]
2. Объекты:
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // { a: 1, b: 2, c: 3 }
3. Функции:
const numbers = [1, 2, 3];
Math.max(...numbers); // 3
🔴 Rest оператор (
...
)Rest оператор собирает оставшиеся аргументы в массив. Используется в функциях и деструктуризации:
1. Параметры функций:
function sum(...args) {
return args.reduce((acc, val) => acc + val, 0);
}
sum(1, 2, 3); // 6
2. Деструктуризация:
const [first, ...rest] = [1, 2, 3, 4]; // first = 1, rest = [2, 3, 4]
const { a, ...otherProps } = { a: 1, b: 2, c: 3 }; // a = 1, otherProps = { b: 2, c: 3 }
📝 Когда использовать?
- Spread: когда нужно разворачивать массивы или объекты.
- Rest: когда нужно собрать неограниченное количество аргументов или оставшиеся элементы.
Использование этих операторов помогает сделать код более гибким и удобным в работе с данными! 🎉
Тэги: #javascript
Что будет выведено в консоль? 🤔
Anonymous Quiz
13%
3 2 true
38%
3 3 false
0%
3 2 false
50%
undefined 2 true
Big O Notation: Основы и Основные Временные Сложности
Big O Notation используется для оценки эффективности алгоритмов. Это способ описания, как время выполнения или использование памяти алгоритма масштабируется с увеличением объема входных данных. 🚀
Что такое Big O Notation? 🤔
Big O описывает наихудший случай, когда алгоритм работает дольше всего. Он помогает разработчикам понять, насколько эффективно их решение, и сравнить его с другими алгоритмами.
Основные Временные Сложности:
1. O(1) — Константное время ⚡️
Алгоритм всегда выполняется за одно и то же время, независимо от размера данных.
Пример: Доступ к элементу массива по индексу.
Используется в: Хэш-таблицы, кеширование, массивы.
2. O(log n) — Логарифмическое время 🔍
Время выполнения увеличивается пропорционально логарифму от объема данных.
Пример: Бинарный поиск.
Используется в: Поиск в отсортированных структурах данных, бинарные деревья поиска.
3. O(n) — Линейное время 📊
Время выполнения растет линейно с увеличением объема данных.
Пример: Простая итерация по массиву.
Используется в: Поиск элемента в несортированном массиве, проверка всех элементов массива.
4. O(n log n) — Линейно-логарифмическое время 🌀
Алгоритмы, которые сортируют данные, часто имеют такую сложность.
Пример: Быстрая сортировка (Quick Sort), пирамидальная сортировка (Heap Sort).
Используется в: Сортировка массивов и списков.
5. O(n^2) — Квадратичное время 🏋️♂️
Время выполнения растет пропорционально квадрату размера данных.
Пример: Пузырьковая сортировка (Bubble Sort).
Используется в: Алгоритмы, которые требуют вложенных циклов для сравнения каждого элемента.
6. O(2^n) — Экспоненциальное время 🌌
Время выполнения удваивается с добавлением каждого нового элемента.
Пример: Решение задачи о рюкзаке методом полного перебора.
Используется в: Решение сложных задач комбинаторики, рекурсивные алгоритмы с большим числом вызовов.
7. O(n!) — Факториальное время 🚨
Время выполнения растет факториально.
Пример: Генерация всех возможных перестановок.
Используется в: Очень редких случаях; задачи оптимизации и комбинаторики.
Как использовать Big O Notation?
Big O Notation помогает выбрать оптимальный алгоритм для задачи, понимая, как он масштабируется с ростом объема данных. Используйте алгоритмы с меньшей сложностью, чтобы улучшить производительность и сократить время выполнения. 💡
Big O Notation используется для оценки эффективности алгоритмов. Это способ описания, как время выполнения или использование памяти алгоритма масштабируется с увеличением объема входных данных. 🚀
Что такое Big O Notation? 🤔
Big O описывает наихудший случай, когда алгоритм работает дольше всего. Он помогает разработчикам понять, насколько эффективно их решение, и сравнить его с другими алгоритмами.
Основные Временные Сложности:
1. O(1) — Константное время ⚡️
Алгоритм всегда выполняется за одно и то же время, независимо от размера данных.
Пример: Доступ к элементу массива по индексу.
Используется в: Хэш-таблицы, кеширование, массивы.
2. O(log n) — Логарифмическое время 🔍
Время выполнения увеличивается пропорционально логарифму от объема данных.
Пример: Бинарный поиск.
Используется в: Поиск в отсортированных структурах данных, бинарные деревья поиска.
3. O(n) — Линейное время 📊
Время выполнения растет линейно с увеличением объема данных.
Пример: Простая итерация по массиву.
Используется в: Поиск элемента в несортированном массиве, проверка всех элементов массива.
4. O(n log n) — Линейно-логарифмическое время 🌀
Алгоритмы, которые сортируют данные, часто имеют такую сложность.
Пример: Быстрая сортировка (Quick Sort), пирамидальная сортировка (Heap Sort).
Используется в: Сортировка массивов и списков.
5. O(n^2) — Квадратичное время 🏋️♂️
Время выполнения растет пропорционально квадрату размера данных.
Пример: Пузырьковая сортировка (Bubble Sort).
Используется в: Алгоритмы, которые требуют вложенных циклов для сравнения каждого элемента.
6. O(2^n) — Экспоненциальное время 🌌
Время выполнения удваивается с добавлением каждого нового элемента.
Пример: Решение задачи о рюкзаке методом полного перебора.
Используется в: Решение сложных задач комбинаторики, рекурсивные алгоритмы с большим числом вызовов.
7. O(n!) — Факториальное время 🚨
Время выполнения растет факториально.
Пример: Генерация всех возможных перестановок.
Используется в: Очень редких случаях; задачи оптимизации и комбинаторики.
Как использовать Big O Notation?
Big O Notation помогает выбрать оптимальный алгоритм для задачи, понимая, как он масштабируется с ростом объема данных. Используйте алгоритмы с меньшей сложностью, чтобы улучшить производительность и сократить время выполнения. 💡
Какова временная сложность следующего алгоритма?
Anonymous Quiz
20%
A) O(1)
60%
B) O(n)
10%
C) O(log n)
10%
D) O(n^2)
Что такое React и его базовые концепции ⚛️
React — это библиотека JavaScript для создания пользовательских интерфейсов, особенно для одностраничных приложений. Он позволяет разработчикам создавать веб-приложения, которые могут обновлять и рендерить данные без перезагрузки страницы. Основная идея React заключается в использовании компонентов, которые представляют собой повторно используемые блоки кода.
🔍 Компоненты
Компоненты — это независимые, переиспользуемые части интерфейса. Они могут быть функциональными или классовыми (но предпочтение отдается функциональным). Каждый компонент возвращает фрагмент JSX-разметки, которая затем рендерится на странице.
📦 Props
Props (сокр. от "properties") — это данные, которые передаются от родительского компонента к дочернему. Они позволяют компонентам взаимодействовать друг с другом и настраивать поведение.
🧠 State
State — это данные, которые управляются внутри компонента и могут изменяться с течением времени. Состояние позволяет компоненту реагировать на действия пользователя, обновляя интерфейс.
📝 JSX
JSX — это синтаксическое расширение JavaScript, похожее на HTML. Оно используется для описания структуры пользовательского интерфейса и является ключевой частью React.
🔄 Виртуальный DOM
Виртуальный DOM в React — это способ ускорить обновление веб-страницы.
Вместо того чтобы сразу менять реальную страницу, React сначала делает изменения в своей "копии" страницы (виртуальном DOM).
Потом он быстро сравнивает эту копию с предыдущей и изменяет только те части реальной страницы, которые действительно изменились.
Тэги : #react #javascript
React — это библиотека JavaScript для создания пользовательских интерфейсов, особенно для одностраничных приложений. Он позволяет разработчикам создавать веб-приложения, которые могут обновлять и рендерить данные без перезагрузки страницы. Основная идея React заключается в использовании компонентов, которые представляют собой повторно используемые блоки кода.
🔍 Компоненты
Компоненты — это независимые, переиспользуемые части интерфейса. Они могут быть функциональными или классовыми (но предпочтение отдается функциональным). Каждый компонент возвращает фрагмент JSX-разметки, которая затем рендерится на странице.
const Welcome = ({ name }) => <h1>Привет, {name}!</h1>;
📦 Props
Props (сокр. от "properties") — это данные, которые передаются от родительского компонента к дочернему. Они позволяют компонентам взаимодействовать друг с другом и настраивать поведение.
const UserCard = ({ name, age }) => (
<div>
<h2>{name}</h2>
<p>Возраст: {age}</p>
</div>
);
🧠 State
State — это данные, которые управляются внутри компонента и могут изменяться с течением времени. Состояние позволяет компоненту реагировать на действия пользователя, обновляя интерфейс.
const Counter = () => {
const [count, setCount] = React.useState(0);
return (
<div>
<p>Счет: {count}</p>
<button onClick={() => setCount(count + 1)}>Увеличить</button>
</div>
);
};
📝 JSX
JSX — это синтаксическое расширение JavaScript, похожее на HTML. Оно используется для описания структуры пользовательского интерфейса и является ключевой частью React.
const Element = <h1>Привет, мир!</h1>;
🔄 Виртуальный DOM
Виртуальный DOM в React — это способ ускорить обновление веб-страницы.
Вместо того чтобы сразу менять реальную страницу, React сначала делает изменения в своей "копии" страницы (виртуальном DOM).
Потом он быстро сравнивает эту копию с предыдущей и изменяет только те части реальной страницы, которые действительно изменились.
Тэги : #react #javascript
🌟 Основы React: Ключи, Рендеринг, События и Хуки 🌟
Сегодня мы рассмотрим четыре важных концепции: ключи, рендеринг, события и хуки. 🚀
🔑 Ключи (Keys)
Ключи используются в React для отслеживания элементов в списках. Они помогают React эффективно обновлять и рендерить списки элементов, обеспечивая стабильность и производительность. Каждый элемент в списке должен иметь уникальный ключ. 🎯
Пример:
🔄 Рендеринг (Rendering)
Рендеринг в React состоит из трех основных этапов:
1. Триггеринг рендеринга (Triggering a Render): Рендеринг компонента начинается, когда изменяется состояние (с помощью
2. Рендеринг компонента (Rendering the Component): React создает виртуальное представление компонента и сравнивает его с предыдущим виртуальным DOM, чтобы определить, какие изменения необходимо внести. Этот процесс называется "реконсиляцией".
3. Коммитинг в DOM (Committing to the DOM): После того как React вычисляет необходимые изменения, он обновляет реальный DOM, применяя только те изменения, которые необходимы. Это позволяет минимизировать количество операций с реальным DOM, что повышает производительность.
💡 Советы: Для оптимизации рендеринга используйте
🎉 События (Events)
Обработка событий в React похожа на обычный JavaScript, но с некоторыми особенностями. События обрабатываются с использованием обработчиков, переданных в компоненты. ✨
Пример:
🪝 Хуки (Hooks)
Хуки — это функции, которые позволяют вам использовать состояние и другие возможности React без написания классов. Вот два самых основных хука:
1. `useState`: Позволяет добавлять состояние в функциональные компоненты. 💬
Пример:
Пример:
Эти концепции являются основой React и помогут вам создавать более эффективные и масштабируемые приложения. Понимание их работы и правильное применение улучшит качество вашего кода и пользовательского опыта. 🚀
Тэги : #javascript #react
Сегодня мы рассмотрим четыре важных концепции: ключи, рендеринг, события и хуки. 🚀
🔑 Ключи (Keys)
Ключи используются в React для отслеживания элементов в списках. Они помогают React эффективно обновлять и рендерить списки элементов, обеспечивая стабильность и производительность. Каждый элемент в списке должен иметь уникальный ключ. 🎯
Пример:
const items = ['Яблоко', 'Банан', 'Апельсин'];🔍 Обратите внимание: Не используйте индексы массива как ключи в случаях, когда порядок элементов может измениться. Это может привести к неожиданным ошибкам и проблемам с производительностью.
function FruitList() {
return (
<ul>
{items.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
);
}
🔄 Рендеринг (Rendering)
Рендеринг в React состоит из трех основных этапов:
1. Триггеринг рендеринга (Triggering a Render): Рендеринг компонента начинается, когда изменяется состояние (с помощью
useState
) или свойства компонента. Это может быть вызвано пользовательским действием, изменением данных или любым другим событием.2. Рендеринг компонента (Rendering the Component): React создает виртуальное представление компонента и сравнивает его с предыдущим виртуальным DOM, чтобы определить, какие изменения необходимо внести. Этот процесс называется "реконсиляцией".
3. Коммитинг в DOM (Committing to the DOM): После того как React вычисляет необходимые изменения, он обновляет реальный DOM, применяя только те изменения, которые необходимы. Это позволяет минимизировать количество операций с реальным DOM, что повышает производительность.
💡 Советы: Для оптимизации рендеринга используйте
React.memo
и useCallback
, чтобы предотвратить ненужные повторные рендеры.🎉 События (Events)
Обработка событий в React похожа на обычный JavaScript, но с некоторыми особенностями. События обрабатываются с использованием обработчиков, переданных в компоненты. ✨
Пример:
function Button() {⚙️ Замечание: В React вы используете camelCase для именования обработчиков событий (например,
const handleClick = () => {
alert('Кнопка нажата! 🎉');
};
return <button onClick={handleClick}>Нажми меня!</button>;
}
onClick
вместо onclick
).🪝 Хуки (Hooks)
Хуки — это функции, которые позволяют вам использовать состояние и другие возможности React без написания классов. Вот два самых основных хука:
useState
и useEffect
. 🔧1. `useState`: Позволяет добавлять состояние в функциональные компоненты. 💬
Пример:
import { useState } from 'react';2. `useEffect`: Позволяет выполнять побочные эффекты в функциональных компонентах, такие как запросы к серверу и подписки. 🌐
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Счетчик: {count} 📈</p>
<button onClick={() => setCount(count + 1)}>Увеличить ➕</button>
</div>
);
}
Пример:
import { useEffect, useState } from 'react';🚀 Заключение :
function FetchDataComponent() {
const [data, setData] = useState(null);
useEffect(() => {
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => setData(data));
}, []); // Пустой массив означает, что эффект выполнится только один раз после первого рендера
return <div>{data ? <pre>{JSON.stringify(data, null, 2)}</pre> : 'Загрузка... ⏳'}</div>;
}
Эти концепции являются основой React и помогут вам создавать более эффективные и масштабируемые приложения. Понимание их работы и правильное применение улучшит качество вашего кода и пользовательского опыта. 🚀
Тэги : #javascript #react
Почему значение count не обновляется при нажатии кнопки? 🤔
Anonymous Quiz
30%
🔍 Компонент не рендерится заново
10%
🔍 Событие onClick не связано с функцией increment
60%
🔍 Отсутствует useEffect для обновления переменной.
Маршрутизация в React-приложениях 🔄
Маршрутизация — важный аспект в разработке одностраничных приложений (SPA) на React. Она позволяет вам управлять отображением различных компонентов в зависимости от текущего URL, создавая ощущение многопользовательской работы с приложением.
📌 Основные концепции React Router
React Router — популярная библиотека для маршрутизации в React-приложениях. Она предоставляет мощные инструменты для создания сложных маршрутов с поддержкой динамических путей, вложенных маршрутов и даже программной навигации.
1. Основные компоненты:
- BrowserRouter: Управляет историей браузера и синхронизирует URL с состоянием UI.
- Routes: Контейнер для всех маршрутов приложения.
- Route: Определяет маршрут, сопоставляя путь и соответствующий компонент.
- Link: Позволяет осуществлять навигацию по приложению без перезагрузки страницы.
- Outlet: Это компонент, который используется для рендеринга дочерних маршрутов. Он представляет место внутри родительского компонента, где будут отображаться вложенные маршруты.
2. Использование
3. Пример настройки маршрутизации:
🛠 Гибкость маршрутизации
Кроме базовой маршрутизации,
- Вложенные маршруты: Позволяют отображать компоненты внутри других компонентов.
- Программная навигация: Возможность изменения маршрута через код с помощью
- Защищенные маршруты: Ограничение доступа к определенным маршрутам на основе условий, например, аутентификации пользователя.
Альтернативный способ маршрутизации :
Где и как применяется маршрутизация 🌟
Маршрутизация широко применяется в одностраничных приложениях, таких как:
- Корпоративные панели управления: для разделения на разные страницы (например, дашборд, отчеты, пользователи).
- Интернет-магазины: для маршрутизации по страницам продуктов, корзины, оформления заказа и т.д.
- Социальные сети: для управления страницами профиля, ленты новостей, сообщений и уведомлений.
Маршрутизация в React — мощный инструмент для создания динамичных и отзывчивых приложений, позволяющий управлять состоянием и навигацией с минимальными усилиями.
📝 Заключение: React Router — ключевой компонент для создания SPA, предоставляющий гибкие и мощные возможности для управления маршрутизацией.
Маршрутизация — важный аспект в разработке одностраничных приложений (SPA) на React. Она позволяет вам управлять отображением различных компонентов в зависимости от текущего URL, создавая ощущение многопользовательской работы с приложением.
📌 Основные концепции React Router
React Router — популярная библиотека для маршрутизации в React-приложениях. Она предоставляет мощные инструменты для создания сложных маршрутов с поддержкой динамических путей, вложенных маршрутов и даже программной навигации.
1. Основные компоненты:
- BrowserRouter: Управляет историей браузера и синхронизирует URL с состоянием UI.
- Routes: Контейнер для всех маршрутов приложения.
- Route: Определяет маршрут, сопоставляя путь и соответствующий компонент.
- Link: Позволяет осуществлять навигацию по приложению без перезагрузки страницы.
- Outlet: Это компонент, который используется для рендеринга дочерних маршрутов. Он представляет место внутри родительского компонента, где будут отображаться вложенные маршруты.
2. Использование
react-router-dom
:
npm install react-router-dom
3. Пример настройки маршрутизации:
import React from 'react';
import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';
function Home() {
return <h2>🏡 Home</h2>;
}
function About() {
return <h2>ℹ️ About</h2>;
}
function Contact() {
return <h2>📞 Contact</h2>;
}
export default function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/contact" element={<Contact />} />
</Routes>
</Router>
);
}
🛠 Гибкость маршрутизации
Кроме базовой маршрутизации,
react-router-dom
предоставляет: - Вложенные маршруты: Позволяют отображать компоненты внутри других компонентов.
- Программная навигация: Возможность изменения маршрута через код с помощью
useNavigate
. - Защищенные маршруты: Ограничение доступа к определенным маршрутам на основе условий, например, аутентификации пользователя.
Альтернативный способ маршрутизации :
import React from 'react';
import { createBrowserRouter, RouterProvider, Navigate, Outlet } from 'react-router-dom';
function Template() {
return (
<div>
<header>Header</header>
<Outlet />
<footer>Footer</footer>
</div>
);
}
function Router() {
const routing = createBrowserRouter([
{
path: '/',
element: <Template />,
children: [
{ path: '/home', element: <Home /> },
{ path: '/portfolio', element: <Portfolio /> },
{ path: '/services', element: <Services /> },
{ path: '*', element: <Error /> },
],
},
]);
return <RouterProvider router={routing} />;
}
export default function App() {
return <Router/>;
}
Где и как применяется маршрутизация 🌟
Маршрутизация широко применяется в одностраничных приложениях, таких как:
- Корпоративные панели управления: для разделения на разные страницы (например, дашборд, отчеты, пользователи).
- Интернет-магазины: для маршрутизации по страницам продуктов, корзины, оформления заказа и т.д.
- Социальные сети: для управления страницами профиля, ленты новостей, сообщений и уведомлений.
Маршрутизация в React — мощный инструмент для создания динамичных и отзывчивых приложений, позволяющий управлять состоянием и навигацией с минимальными усилиями.
📝 Заключение: React Router — ключевой компонент для создания SPA, предоставляющий гибкие и мощные возможности для управления маршрутизацией.
Что такое стейт-менеджеры и зачем они нужны? 🤔
Стейт-менеджеры были созданы для удобного управления состоянием в приложениях. В React и других фреймворках состояние (state) хранит данные, которые могут меняться во времени, например, ввод пользователя, данные API или состояния компонентов. В крупных приложениях управление состоянием становится сложным из-за множества компонентов, которые могут обновлять одно и то же состояние. Стейт-менеджеры помогают централизовать управление состоянием, сделать его предсказуемым и упрощают отладку.
Популярные стейт-менеджеры 🛠
1. Redux - Один из самых популярных стейт-менеджеров для React. Позволяет использовать единый "глобальный" стор для всех данных приложения и следить за изменениями с помощью экшенов и редьюсеров.
2. MobX - Реактивный стейт-менеджер, который автоматически отслеживает зависимости между состоянием и компонентами.
3. Context API - Встроенный инструмент React, который позволяет передавать состояние между компонентами без необходимости прокидывания через пропсы.
Что такое Redux Toolkit? 🚀
Redux Toolkit (RTK) — это официальная библиотека для упрощения работы с Redux. RTK предоставляет стандартные методы и инструменты для написания Redux кода, делая его более кратким и понятным.
Основные возможности Redux Toolkit:
1. `createSlice` - Позволяет создавать редьюсеры и экшены одним вызовом.
2. `configureStore` - Упрощает создание хранилища (store) с предустановками.
3. `createAsyncThunk` - Для работы с асинхронными действиями (например, запросами к API).
4. `createSelector` - Мемоизация данных для производительности.
Пример использования Redux Toolkit:
🚀 Заключение :
Стейт-менеджеры являются неотъемлимой частью крупных проектов , без них работа с данными становиться очень некомфортный . В следующем посте мы поговорим поподробнее про Redux Toolkit 🏡
Тэги : #javascript #react
Стейт-менеджеры были созданы для удобного управления состоянием в приложениях. В React и других фреймворках состояние (state) хранит данные, которые могут меняться во времени, например, ввод пользователя, данные API или состояния компонентов. В крупных приложениях управление состоянием становится сложным из-за множества компонентов, которые могут обновлять одно и то же состояние. Стейт-менеджеры помогают централизовать управление состоянием, сделать его предсказуемым и упрощают отладку.
Популярные стейт-менеджеры 🛠
1. Redux - Один из самых популярных стейт-менеджеров для React. Позволяет использовать единый "глобальный" стор для всех данных приложения и следить за изменениями с помощью экшенов и редьюсеров.
2. MobX - Реактивный стейт-менеджер, который автоматически отслеживает зависимости между состоянием и компонентами.
3. Context API - Встроенный инструмент React, который позволяет передавать состояние между компонентами без необходимости прокидывания через пропсы.
Что такое Redux Toolkit? 🚀
Redux Toolkit (RTK) — это официальная библиотека для упрощения работы с Redux. RTK предоставляет стандартные методы и инструменты для написания Redux кода, делая его более кратким и понятным.
Основные возможности Redux Toolkit:
1. `createSlice` - Позволяет создавать редьюсеры и экшены одним вызовом.
2. `configureStore` - Упрощает создание хранилища (store) с предустановками.
3. `createAsyncThunk` - Для работы с асинхронными действиями (например, запросами к API).
4. `createSelector` - Мемоизация данных для производительности.
Пример использования Redux Toolkit:
//store/slices/counter.js
import { configureStore, createSlice } from '@reduxjs/toolkit';
const counterSlice = createSlice({
name: 'counter',
initialState: 0,
reducers: {
increment: (state) => state + 1,
decrement: (state) => state - 1,
},
});
export const { increment, decrement } = counterSlice.actions;
//store/index.js
const store = configureStore({
reducer: {
counter: counterSlice.reducer,
},
});
export default store;
🚀 Заключение :
Стейт-менеджеры являются неотъемлимой частью крупных проектов , без них работа с данными становиться очень некомфортный . В следующем посте мы поговорим поподробнее про Redux Toolkit 🏡
Тэги : #javascript #react