Урок 1.00:04:20
Об этом курсе
Урок 2.00:05:22
Что такое React
Урок 3.00:10:21
Первое React приложение
Урок 4.00:06:18
Настройка среды разработки
Урок 5.00:05:42
Как скачать код примеров
Урок 6.00:06:05
Современный JavaScript и его версии
Урок 7.00:02:50
Введение - как использовать этот раздел
Урок 8.00:06:11
Ключевые слова let и const
Урок 9.00:11:45
Arrow-функции
Урок 10.00:05:40
Параметры по-умолчанию
Урок 11.00:04:15
Rest параметр
Урок 12.00:04:18
Spread оператор для массивов
Урок 13.00:12:55
Деструктуризация объектов
Урок 14.00:09:27
Деструктуризация массивов
Урок 15.00:04:33
Шаблонные строки (template strings)
Урок 16.00:07:37
Объекты
Урок 17.00:03:49
Оператор Object Spread
Урок 18.00:14:20
Прототипы
Урок 19.00:09:18
Классы
Урок 20.00:07:20
Свойства классов (class properties)
Урок 21.00:11:29
Модули в JavaScript
Урок 22.00:05:01
Каким будет наш первый проект
Урок 23.00:08:09
Создаём пустой React проект
Урок 24.00:11:06
React элементы
Урок 25.00:06:32
React компоненты
Урок 26.00:14:20
JSX
Урок 27.00:04:20
Упражнение - Code Review 1
Урок 28.00:08:52
Структура React проекта (часть 1)
Урок 29.00:07:22
Props - свойства компонентов
Урок 30.00:10:32
Массивы, как свойства компонентов
Урок 31.00:10:50
Коллекции и ключи
Урок 32.00:14:37
Как импортировать css
Урок 33.00:08:10
Структура React проекта - часть 2
Урок 34.00:08:00
Компоненты-классы
Урок 35.00:11:37
Обработка событий
Урок 36.00:05:36
State - состояние React компонента
Урок 37.00:04:32
Как работает setState()
Урок 38.00:05:26
Обновление состояние, зависящее от предыдущего состояния
Урок 39.00:07:43
Собственные события
Урок 40.00:11:38
setState() - удаление элемента
Урок 41.00:14:42
setState() - добавление элемента
Урок 42.00:07:57
Данные в React приложении
Урок 43.00:15:46
setState() - редактирование элементов
Урок 44.00:09:31
Работа с формами
Урок 45.00:04:12
Контролируемые компоненты
Урок 46.00:01:54
Как использовать этот раздел
Урок 47.00:09:09
Реализуем поиск
Урок 48.00:13:08
Реализуем фильтры
Урок 49.00:03:03
Каким будет наш следующий проект
Урок 50.00:05:16
Создаём пустой проект
Урок 51.00:03:28
Выбор HTTP API для браузера
Урок 52.00:05:51
Как работает Fetch API
Урок 53.00:04:16
Обработка ошибок в Fetch API
Урок 54.00:07:21
Создаём клиент для API
Урок 55.00:06:51
Создаём компоненты StarDB
Урок 56.00:09:48
Компонент, который получает данные из API
Урок 57.00:11:28
Трансформация данных API
Урок 58.00:04:21
Создаём индикатор загрузки
Урок 59.00:08:39
Логика индикатора загрузки
Урок 60.00:08:59
Обработка ошибок сети в компоненте
Урок 61.00:05:25
Работа с API - выводы
Урок 62.00:07:07
Зачем компонентам "жизненный цикл"?
Урок 63.00:06:00
Методы жизненного цикла
Урок 64.00:02:39
componentDidMount()
Урок 65.00:08:03
Используем на практике componentDidMount()
Урок 66.00:02:08
componentDidUpdate()
Урок 67.00:07:51
Используем на практике componentDidUpdate()
Урок 68.00:02:20
componentWillUnmount()
Урок 69.00:10:41
componentDidCatch()
Урок 70.00:09:11
Используем componentDidCatch() на практике
Урок 71.00:04:07
Паттерны React - введение
Урок 72.00:09:22
Использование функций
Урок 73.00:07:15
Render-функции
Урок 74.00:06:56
Свойства-элементы
Урок 75.00:08:45
Children
Урок 76.00:09:16
Практика - рефакторинг компонента
Урок 77.00:09:43
Работа с props.children
Урок 78.00:05:17
Клонирование элементов
Урок 79.00:12:51
Компоненты высшего порядка (HOC)
Урок 80.00:12:11
Рефакторинг компонентов
Урок 81.00:08:32
Композиция компонентов высшего порядка
Урок 82.00:06:34
Контекст
Урок 83.00:09:47
Использование Context API
Урок 84.00:07:04
Использование HOC для работы с контекстом
Урок 85.00:12:26
Трансформация props в компонентах высшего порядка
Урок 86.00:12:53
Обновление контекста
Урок 87.00:10:20
Рефакторинг: делаем код чище
Урок 88.00:07:36
Рефакторинг компонентов высшего порядка (опциональный урок)
Урок 89.00:11:24
Функция compose() (опциональный урок))
Урок 90.00:06:14
Свойство defaultProps
Урок 91.00:05:00
Свойство propTypes
Урок 92.00:03:58
NPM - установка дополнительных пакетов
Урок 93.00:07:28
Библиотеки prop-types
Урок 94.00:06:57
Что такое React Hooks (хуки)
Урок 95.00:02:29
Новый проект
Урок 96.00:11:15
useState()
Урок 97.00:02:51
useContext()
Урок 98.00:11:04
useEffect()
Урок 99.00:09:33
useEffect() - упражнения
Урок 100.00:07:32
Использование useEffect() для загрузки данных
Урок 101.00:02:28
Создание собственных хуков
Урок 102.00:17:51
useCallback() и useMemo()
Урок 103.00:03:50
Правила и ограничения хуков
Урок 104.00:04:55
Что такое роутинг
Урок 105.00:04:54
Основы react-router
Урок 106.00:03:01
Link
Урок 107.00:05:30
Как работает Route
Урок 108.00:07:06
Динамические пути
Урок 109.00:06:35
withRouter
Урок 110.00:04:59
Относительные пути
Урок 111.00:08:04
Опциональные параметры
Урок 112.00:11:13
Авторизация и "закрытые" страницы
Урок 113.00:07:16
Switch (обработка несуществующих адресов)
Урок 114.00:10:15
Введение в Redux
Урок 115.00:03:33
Установка библиотек
Урок 116.00:07:04
Reducer
Урок 117.00:04:28
Redux Store
Урок 118.00:06:04
Чистые функции
Урок 119.00:05:22
UI для Redux
Урок 120.00:03:43
Действия с параметрами
Урок 121.00:03:43
Action Creator
Урок 122.00:01:59
Структура проекта
Урок 123.00:08:50
bindActionCreators()
Урок 124.00:08:48
Использование React и Redux
Урок 125.00:11:03
react-redux и функция connect()
Урок 126.00:08:06
Функция mapDispatchToProps()
Урок 127.00:04:28
mapDispatchToProps в виде объекта
Урок 128.00:02:30
Наш следующий проект
Урок 129.00:03:35
Инициализация проекта
Урок 130.00:05:29
Структура react+redux проекта
Урок 131.00:09:34
Вспомогательные компоненты
Урок 132.00:06:44
Redux компоненты
Урок 133.00:08:01
Каркасc React-Redux приложения
Урок 134.00:10:58
Роутинг
Урок 135.00:04:38
Чтение данных из Redux Store
Урок 136.00:12:04
Отправка действий в Redux Store (action dispatch)
Урок 137.00:09:38
Стили (опциональное видео)
Урок 138.00:07:49
Работа с асинхронными данными
Урок 139.00:07:02
Отличия setState() и reducer
Урок 140.00:07:45
Обработка ошибок
Урок 141.00:07:07
mapDispatchToProps: аргумент ownProps
Урок 142.00:04:21
Naming Convention для действий
Урок 143.00:03:40
Компоненты-контейнеры
Урок 144.00:10:33
Подключение нового компонента к Redux
Урок 145.00:10:07
Redux: добавление элементов в массив
Урок 146.00:13:43
Redux: обновление элементов в массиве
Урок 147.00:12:17
Redux: удаление элементов из массива
Урок 148.00:12:54
Организация кода reducer'а
Урок 149.00:11:46
Store Enhancers
Урок 150.00:09:51
Middleware
Урок 151.00:11:41
Thunk
Урок 152.00:02:59
Следующие шаги
Урок 153.00:03:09
Сборка React приложения
Урок 154.00:06:04
Создаём новый проект
Урок 155.00:04:36
Установка Babel
Урок 156.00:06:09
Плагины Babel
Урок 157.00:04:20
Конфигурация Babel (.babelrc)
Урок 158.00:06:55
Babel Presets
Урок 159.00:09:10
Оптимизация сборки для конкретных браузеров
Урок 160.00:05:55
Динамический выбор браузеров (browserslist)
Урок 161.00:04:31
Файлы конфигурации browserslist
Урок 162.00:07:33
Polyfills
Урок 163.00:03:27
Работа с JSX
Урок 164.00:02:32
Организация зависимостей
Урок 165.00:04:44
Что такое WebPack
Урок 166.00:07:31
Установка WebPack
Урок 167.00:04:31
Файл конфигурации WebPack
Урок 168.00:08:30
Webpack Loader
Урок 169.00:04:26
Конфигурация loader'ов
Урок 170.00:02:55
Loader'ы для разных типов файлов
Урок 171.00:04:44
React и Babel Loader
Урок 172.00:06:17
Композиция Loader'ов
Урок 173.00:05:12
CSS препроцессоры. Sass.
Урок 174.00:03:05
Упрощение синтаксиса webpack.config.js
Урок 175.00:06:27
Плагины
Урок 176.00:04:15
HtmlWebpackPlugin: использование шаблонов
Урок 177.00:04:49
Mini CSS Extract Plugin
Урок 178.00:08:10
Wepback Dev Server
Урок 179.00:15:46
Конфигурация для production
Сейчас в основном хуками и функциональным программированием пользуются.
this.setState(({todoData}) => ({
todoData: [...todoData, newItem],
}));
а то Ментр ругатся будет )))
Посилання, яке необхідно добавити у функцію fetch змінилося!
https://swapi.dev/api/people/1/
const data = loading ? :
Можно ли чуточку оптимизировать код? Проверил, работает, но может я чего-то не учел?
Итак, вместо:
const spinner = loading ? : null;
const content = !loading ? : null
...
{spinner}
{content}
заменить на:
const data = loading ? :
...
{data}
Человек занимается отуплением своих учеников, а его код это - оверинжиниринг. (обертка - обертка -обертка - чтоб обертка....)
Да молодец, что рассказывает про базовые функции с примерами, но их применение это ппц.
Читайте лучше оф.доку
toggleProperty(arr, id, prop) {
const item = arr.find(element => element.id === id);
const data = {...item, [prop]: !item[prop]};
return arr.map(todo => todo.id === id ? data : todo);
}
this.setState(({todoData}) => {
return {
todoData: todoData.filter(element => element.id !== id)
}
});
если ты об этом
filter вернет новый массив не мутируя старый.
toggleProp(arr, id, propName){
const idx = arr.findIndex((el) => el.id === id);
const oldItem = arr[idx];
-------> const newItem = {...oldItem, [propName]: [!oldItem.propName]};
console.log(newItem)
const newArray = [
...arr.slice(0, idx),
newItem,
...arr.slice(idx + 1)
]
console.log(newArray)
return newArray
}
Друзья, кто сталкивался?
Unhandled Rejection (TypeError): undefined is not an object (evaluating 'this._extractId')
return {
id: this._extractId(planet),
.......}
если ее закрыть содержимое сайта показывает, но при обновлении постоянно вылазит эта ошибка, кто с этим сталкивался??
спасибо
componentDidMount() {
this.swapiService
.getAllPeople()
.then((peopleList) => {
this.setState({
peopleList
});
});
}
У меня peopleList приходит undefined после запроса к апи, а почему - понять не могу
свапи переехал сюда https://swapi.dev/documentation#people
Где найти этот исходный код?