Я підготував цей документ, щоб зрозуміти Redux. Сподіваюся, це змусить ваші сумніви.
-------------------------- Підручник зі скорочення ----------------------
ДІЇ - Дії - це корисне навантаження інформації, яка надсилає дані з вашої програми до магазину. Вони є єдиним джерелом інформації з магазину. Ви можете надіслати їх лише за допомогою store.dispatch ().
Example-
const ADD_TODO = 'ADD_TODO'
{
type:ADD_TODO,
text: 'Build my first redux app'
}
Дії - це звичайний об'єкт JavaScript. Дія повинна мати властивість [type], що вказує на тип дії, що виконується. Тип слід визначати як рядкову константу.
СТВОРЕННЯ ДІЙ ----- ---------------- ---- Творці дій - це саме та функція, яка створює дію Легко поєднати між собою терміни - творець дії та дії. У дії redux, творець повертає дію.
function addToDo(text) {
return {
type: ADD_TODO,
text
}
}
для ініціювання відправки передайте результат функції dispatch ().
- відправка (addToDo (текст));
- відправка (completeToDo (індекс))
Крім того, ви можете створити творця зв’язаних дій, який автоматично відправляє.
cosnt boundAddTodO = text => dispatch(addToDo(text));
тепер ви можете його прямо назвати
boundaddTodO(text);
До функції dispatch () можна безпосередньо отримати доступ з store.dispatch (). але ми отримуємо доступ до нього за допомогою допоміжного методу connect ().
Дії.js .....................
Дії ...........
exports cosnt ADD_TODO = 'ADD_TODO';
exports cosnt TOGGLE_TODO = 'TOGGLE_TODO'
Дії Творці
функція експорту addToDO (text) {return {type: ADD_TODO, text}}
......................... РЕДУКТОРИ ........................ ..........
Редуктори вказують, як змінюється стан програм у відповідь на дії, що надсилаються в магазин.
Проектування державного фігури
У redux весь стан програми зберігається в одному об'єкті. Ви повинні зберігати деякі дані, а також деякий стан.
{visibilityFilter: 'SHOW_ALL', todos: [{text: 'Розгляньте можливість використання redux', complete: true}, {text: 'Kepp весь стан в одному дереві'}]}
Обробка дій ---------------- редуктори - це чисті функції, які виконують попередній стан і дію і повертають новий стан.
(previousState, action) => newState
Ми почнемо із зазначення початкового стану. Redux вперше зателефонує нашим редукторам із невизначеним станом. це наш шанс повернути стан нашого додатка.
import { visiblilityFilters } from './actions';
const initialState = {
visibilityFilter: VisibilityFilters.SHOW_ALL,
todo: []
}
function todoApp(state, action){
if(typeof state == 'undefined'){
return initialState;
}
return state;
}
Ви можете зробити те ж саме, використовуючи ES6 спосіб обробки JS
function todoApp(state = initialState, action) {
switch (action.type) {
case SET_VISIBILITY_FILTER:
return Object.assign({}, state, {
visibilityFilter: action.filter
})
default:
return state
}
}
................................. МАГАЗИН ................ ...................
Магазин - це об’єкт, що зближує їх. магазин відповідає наступним
- утримувати стан програми
- дозволити доступ до стану через getState ()
- Дозволити оновлення стану за допомогою диспетчеризації ()
- Зареєструйте слухачів через слухача (слухача)
Примітка. використовуйте combReducers (), щоб об’єднати кілька редукторів в один.
const store = createStore (todoapp); // todoapp - це редуктори