Привет (генерал Кеноби). Давайте немного поговорим о том, что такое Redux, и поймем, как мы можем реализовать это с помощью реакции без особых сложностей. Прежде чем говорить о сокращении, нам нужно понять несколько вещей, чтобы убедиться, что все находятся на одной странице, поскольку вы можете быть новичком или не иметь опыта работы с React. Не волнуйтесь, если вы ничего не знаете о реакции, потому что я объясню вам так, чтобы вы поняли, какую проблему мы пытаемся решить здесь.
Давайте посмотрим: подумайте, что все является блоком, и внутри блока может быть дочерний блок, и этот дочерний элемент может получать информацию только в том случае, если дочерний элемент блока имеет информацию, но что это значит?
Представьте, что у вас есть сложное и большое приложение, и вам нужно передать данные из компонента верхнего уровня в компонент нижнего уровня. Вероятно, это будет сложное кодирование и передача данных компоненту, который никогда их не будет использовать. Мы называем это буровым каналом.
С самого начала этой статьи мы говорили только о том, как мы можем обрабатывать состояния компонентов и компонентов с вашим собственным состоянием. Управление состоянием - это то, как мы можем решить эту проблему, когда ваше приложение растет.
Redux - это библиотека для управления состоянием приложения.
Как мы видели раньше, становится сложно управлять состояниями, общими для компонентов.
Это хороший вопрос, потому что те, кто работает с React, знают, что есть другой способ сделать это, а для тех, кто хочет знать, я говорю о React-хуках, mobx и других.
Я здесь не для того, чтобы рассказывать вам, что вам следует использовать, потому что это зависит от того, какое приложение вы создаете и над которым работаете, но если приложение не такое сложное, вы можете использовать перехватчики React.
{type: "todos/addTodo",payload: {text:"Redux"}}
const addTodo = text => {
return {
type: 'todos/addTodo',
payload: text
}
}
const todoReducer= (state = {}, action) => {
switch (action.type) {
case "todos/addTodo":
return {
...state,
...action.payload
};
default:
return state;
}
};
const store = createStore(todoReducer);
store.dispatch(addTodo("Todo"))
const getTodos = state => state.value
//getState returns the current state
const todos = getTodos(store.getState())
//src\todoSlice.js
import { createSlice } from '@reduxjs/toolkit'
const todoSlice = createSlice({
name: 'todos',
initialState: {
value: {}
},
reducers: {
addTodo: (state, action) => {
const {payload, type} = action;
state.value[payload] = {id: payload, value: payload};
}
}
})
export const { addTodo } = todoSlice.actions;
export default todoSlice.reducer;
//src\store.js
import { configureStore } from '@reduxjs/toolkit'
import todoSlice from './todoSlice';
export default configureStore({
reducer: {
todos: todoSlice,
//system
}
})
//src\App.js
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux'
import App from './App';
import store from './store';
ReactDOM.render(
<Provider store={store}>
<React.StrictMode>
<App />
</React.StrictMode>
</Provider>,
document.getElementById('root')
);
//src\form import React, {useState} from 'react';
import { useDispatch } from 'react-redux';
import {addTodo} from './todoSlice';
const Form = () => {
const [text, setText] = useState('');
const dispatch = useDispatch();
const onSaveTodo = () => {
dispatch(addTodo(text));
setText('');
}
return (
<>
<input onChange={(e) => setText(e.target.value)} value= {text}/>
<button onClick={() => onSaveTodo()} >Add</button> </>
);
}
export default Form;
import React from 'react';
import { useSelector } from 'react-redux';
const List = () => {
const todos = useSelector((state) => state.todos.value);
const values = Object.values(todos);
return (
<>
{
values.map((todo, index) => <div key={todo.id}>{index + 1} - {todo.value}</div>)
}
</>
);
}
export default List;
import React from 'react';
import Form from './form';
import List from './List';
const App = () => {
return (
<div>
<Form/>
<List/>
</div>
);
}
export default App;
Если вы склонны игнорировать предупреждающее сообщение «каждый элемент должен иметь уникальный ключ» при отображении массива в React, важно уделить немного времени, чтобы понять, почему это предупреждение возникает в первую очередь. В React при рендеринге списка элементов с использованием «Array.
Готовитесь к интервью JavaScript? Итак, вот контрольный список, прежде чем начать. Если у вас есть ясность в отношении этих концепций, это дает интервьюеру ощущение, что у вас есть возможность решить техническую проблему, потому что вы понимаете основные принципы, и он / она будет более чем счастлив видеть вас в своей команде.
Мы часто обнаруживаем, что изо всех сил пытаемся реализовать то, что, как мы знаем, полезно для нас. От того, чтобы сказать значимому другому, что мы любим его, до того, чтобы помнить, что нужно говорить как пират, всегда будут те, кто утверждает, что день, неделя или месяц событий не нужны, потому что они уже делают эти вещи.
Во избежание двусмысленности будут использоваться следующие термины; Аутентификатор; Мобильный телефон, используемый для входа на веб-сайт; веб-сайт или приложение, которое пользователь использует для выполнения запроса на вход в систему; Поставщик, предоставляющий данную услугу, например
Зуд в моей руке распространился, когда я торговалась с местным книгопродавцом за еще одну книгу. Эта книга, как и остальные, которые я купил недавно, займет свое место в моей стопке «Для чтения» (TBR); и тем не менее, я купил его.
Недавно я был в Linkedin, крупнейшей в мире профессиональной социальной сети, и нашел посты дизайнеров-фрилансеров, за которыми я следил и которые привлекли мое внимание. Все они публиковали фотографии из самолетов, на пляже со своими ноутбуками, из бассейнов и офисов с потрясающими видами.