В чем преимущество использования хука uselocation? useLocation против глобального местоположения

привет, я ищу ответ, в чем смысл хука uselocation. Я создаю свой первый реактивный проект. Я могу легко добраться до объекта глобального местоположения и отлично работает. Какую пользу я могу получить, если воспользуюсь этим крючком?

Спасибо.

Dupe target относится к состояниям React, но на самом деле основная концепция та же самая, если вы используете неограниченную глобальную переменную или X в React.

Drew Reese 23.04.2022 18:47
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
Как передать состояние или данные в react-router v6
Как передать состояние или данные в react-router v6
react-router - это лучшая библиотека для работы с маршрутизацией в reactjs. С помощью react-router вы передаете состояние или данные от одного...
1
1
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы ответить на ваш вопрос более широко, вы должны сначала понять различия, такие как переменные состояния и переменные экземпляра, или пользовательские хуки React против простых функций JavaScript и так далее.

Примеры:

const foo = "bar";
// vs:
const [foo, setFoo] = useState("bar");
import fooFunc from "./fooFunc";
import useFooFunc from "./useFooFunc";

const foo = fooFunc;
// vs:
const foo = useFooFunc();

Разница в первом примере заключается в том, что каждый раз, когда вы обновляете переменную без состояния foo, React не будет знать об изменении, и поэтому он не вызовет повторную визуализацию в вашем компоненте (компонент, который использует переменную foo). . Поэтому, если вы хотите, чтобы React (жизненный цикл React) зафиксировал это изменение, вы должны использовать переменную состояния. Проверьте этот рабочий пример на codeandbox.

Как правило (не с технической точки зрения): все, что так или иначе связано с жизненным циклом компонента, должно быть записано в Реагировать на язык.

Тоже про второй пример, это все та же история по сути. В fooFunc нет ничего плохого, если вам не нужно использовать в нем «React stuff», например, скажем, вы хотите сделать вызов API, поэтому вам нужно будет использовать хук useEffect (иначе все выйдет из строя). руки React и неожиданное поведение последуют), поэтому, пока fooFunc является ванильной функцией JavaScript, React не позволит вам использовать в ней хуки React. Об этом также упоминалось в Страница документации React для Rules of Hooks:

Don’t call Hooks from regular JavaScript functions. Instead, you can:

✅ Call Hooks from React function components.

Call Hooks from custom Hooks.

Не буду возвращаться к вашему вопросу, я думаю, вы сами догадаетесь об ответе. Но я объясню это еще раз. React Router — это библиотека, написанная для React с использованием React, поэтому, чтобы все было в полном порядке и под контролем этих инструментов, вам не нужно вводить посторонний в этом процессе. Помните, что вы могу используете объект глобального местоположения, но это вообще не рекомендуется (если вы точно не знаете, что делаете).

Другие вопросы по теме