Канал для подготовки к собеседованиям по фронтенду Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Менеджер по рекламе: @Spiral_Denis
Оценить канал frontendinterview и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.
5 звезд
0
4 звезд
0
3 звезд
1
2 звезд
1
1 звезд
0
Последние сообщения 161
2021-03-11 19:03:00
Что вы понимаете под ссылками (refs)?
Refs предоставляют доступ к узлам DOM или элементам React, созданным с помощью метода render(). Рефы являются ссылками на DOM-элементы или классовые компоненты из родительского компонента.
Refs также предоставляют возможность связывания элементов дочернего компонента с родительским в форме передачи (перенаправления) ссылок (ref forwarding).
Пример class App extends React.Component { constructor(props) { super(props) // создаем ссылку на DOM-элемент this.textInput = React.createRef() this.state = { value: '' } }
// обновляем состояние с помощью ссылки handleSubmit = e => { e.preventDefault() this.setState({ value: this.textInput.current.value}) }
render() { return (
React Ref - createRef
{/* данное значение будет обновлено */}
Значение: {this.state.value}
) } }
Случаи использования ссылок 1. Установка фокуса, выделение текста или воспроизведение медиа 2. Запуск императивной анимации 3. Интеграция со сторонними библиотеками для работы с DOM
useReducer() - это хук, принимающий функцию-редуктор и начальное состояние приложение в качестве аргументов и возвращающий текущее состояние и диспетчер (dispatcher) для отправки (dispatch) операций.
Несмотря на то, что useState() - это базовый хук, а useReducer() - продвинутый, на самом деле useState() реализован с помощью useReducer(). Это означает, что useReducer() - это примитив, который может использоваться во всех случаях использования useState(). Редуктор - мощный инструмент, который может использоваться в самых разных сценариях:
Пример import React, { useReducer } from 'react'
const initialState = 0 const reducer = (state, action) => { switch (action) { case 'increment': return state + 1 case 'decrement': return state - 1 case 'reset': return 0 default: return state } }
Сначала мы определяем начальное состояние и редуктор. Затем передаем их в useReducer(). Хук возвращает текущее значение состояния и диспетчер, который используется для обновления состояния. Когда пользователь нажимает на кнопку, происходит отправка определенной операции в редуктор, который обновляет счетчик на основе операции. Мы может определять столько операций, сколько требуется нашему приложению.