62 lines
3.6 KiB
Markdown
62 lines
3.6 KiB
Markdown
---
|
||
id: 5a24c314108439a4d403614b
|
||
title: Створення сховища Redux
|
||
challengeType: 6
|
||
forumTopicId: 301439
|
||
dashedName: create-a-redux-store
|
||
---
|
||
|
||
# --description--
|
||
|
||
Redux - це фреймворк керування станами, який може використовуватися з низкою різних веб-технологій, включно із React.
|
||
|
||
У Redux є єдиний об'єкт стану, який відповідає за стан усього вашого застосунку. Це означає, що якщо б у вас був застосунок на React з десятьма компонентами, і кожен компонент мав би власний внутрішній стан, то увесь стан вашого застосунку визначався б по єдиному об'єкту стану, розміщеному на Redux `store` (сховищі). Це і є перший важливий принцип, який слід зрозуміти під час вивчення Redux: сховище Redux - це єдине джерело достовірних даних, коли йдеться про стан застосунку.
|
||
|
||
Це також означає, що, якщо у будь-який час, будь-яка частина вашого застосунку забажає оновити стан, то вона **має** зробити це через сховище Redux. Односпрямований потік даних дозволяє значно легше відстежувати управління станом у вашому застосунку.
|
||
|
||
# --instructions--
|
||
|
||
Redux `store` (сховище) - це об'єкт, який містить та скеровує `state` (стан) застосунку. Цей метод має назву `createStore()` на об'єкті Redux, який ви використовуєте, щоб створити `store` (сховище) Redux. Цей метод використовує функцію `reducer` як необхідний аргумент. Функція `reducer` розкривається в наступних завданнях та вже визначена для вас в редакторі коду. Вона просто бере `state` як аргумент та повертає `state`.
|
||
|
||
Вкажіть `store` змінною та призначте її методу `createStore()`, передавши у `reducer` як аргумент.
|
||
|
||
**Примітка:** код в редакторі за замовчуванням використовує синтаксис аргументів ES6 для ініціалізаціїї цього стану для утримання значення `5`. Якщо ви не знайомі з аргументами за замовчуванням, ви можете дізнатися більше у [секції ES6 в Навчальному плані ](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/set-default-parameters-for-your-functions), що охоплює цю тему.
|
||
|
||
# --hints--
|
||
|
||
Повинно існувати сховище Redux.
|
||
|
||
```js
|
||
assert(typeof store.getState === 'function');
|
||
```
|
||
|
||
Сховище Redux повинно мати значення 5 для стану.
|
||
|
||
```js
|
||
assert(store.getState() === 5);
|
||
```
|
||
|
||
# --seed--
|
||
|
||
## --seed-contents--
|
||
|
||
```js
|
||
const reducer = (state = 5) => {
|
||
return state;
|
||
}
|
||
|
||
// Redux methods are available from a Redux object
|
||
// For example: Redux.createStore()
|
||
// Define the store here:
|
||
```
|
||
|
||
# --solutions--
|
||
|
||
```js
|
||
const reducer = (state = 5) => {
|
||
return state;
|
||
}
|
||
|
||
const store = Redux.createStore(reducer);
|
||
```
|