Ловушки React - это новый (все еще разрабатываемый) способ доступа к основным функциям реакции, таким как state
, без использования классов, в вашем примере, если вы хотите увеличить счетчик непосредственно в функция-обработчик без указания ее непосредственно в onClick
prop, вы можете сделать что-то вроде:
...
const [count, setCounter] = useState(0);
const [moreStuff, setMoreStuff] = useState(...);
...
const setCount = () => {
setCounter(count + 1);
setMoreStuff(...);
...
};
и onClick:
<button onClick={setCount}>
Click me
</button>
Давайте быстро объясним, что происходит в этой строке:
const [count, setCounter] = useState(0);
useState(0)
возвращает кортеж, где первый параметр count
- это текущее состояние счетчика, а setCounter
- метод, который позволит нам обновить состояние счетчика. Мы можем использовать метод setCounter
для обновления состояния count
где угодно - в этом случае мы используем его внутри функции setCount
, где мы можем делать больше вещей; Идея использования хуков заключается в том, что мы можем сделать наш код более функциональным и избегать компонентов, основанных на классах , если они не нужны / не нужны.
Я написал полную статью о хуках с несколькими примерами (включая счетчики), такими как этот код , я использовал useState
, useEffect
, useContext
, и нестандартные крючки . Я мог бы получить более подробную информацию о том, как перехватчики работают с этим ответом, но документация очень хорошо объясняет подробное описание перехвата состояния и других перехватчиков, надеюсь, это поможет.
обновление: Крючки больше не являются предложением , так как версия 16,8 теперь они доступны для использования, на сайте React есть раздел, который отвечает на некоторые вопросы FAQ .