Почему ответ useState реакции имеет параметр, начинающийся с «set»?

В React, когда мы используем состояние, мы пишем такой код:

const [abc, setAbc] = useState("")

В этом случае, почему «setAbc» начинается с «set», можно ли использовать какие-либо другие соглашения об именах? Например, updateAbc

Если возможно, постарайтесь предоставить справочные ссылки, чтобы узнать больше.

useState возвращает массив с двумя значениями, вы можете назвать эти два значения как хотите. См. реакционный документ .
Shuo 20.05.2024 04:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
1
105
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Это всего лишь соглашение об именах, которое вы можете нарушить и использовать любое имя, которое захотите. На стороне React нет никаких ограничений.

  const [abc, setAbc] = useState("")
  const [abc, justSet] = useState("")
  const [abc, updateAbc] = useState("")
  const [abc, change] = useState("")
  const [abc, whatever] = useState("")

Вот как это описывают реагирующие документы:

Условно эту пару принято называть const [something, setSomething]. Вы можете назвать это как угодно, но соглашения упрощают понимание в разных проектах.

По сути, это соглашение об именах, и чтобы интуитивно понять, «почему это просто соглашение об именах», нам нужно понять синтаксис.

Код, который вы предоставили

const [abc, setAbc] = useState("")

на самом деле использует концепцию деструктуризации массива (как также указано в официальной документации), приведенный выше вызов функции useState("") вернет массив длиной два:

["", f()]

Как вы можете видеть в возвращаемом массиве выше, первый элемент массива — это просто значение состояния, а второй элемент массива — это функция для обновления состояния. Итак, ваш код будет назначать abc с "" и setAbc с f(). Чтобы лучше это понять, мы можем даже использовать следующий синтаксис:

const abcState = useState("")
const abc = abcState[0]
const setAbc = abcState[1]

Как вы можете видеть в приведенном выше коде, технически это обычные переменные javascript, и вы можете назвать их так же, как вы называете обычную переменную javascript.

Каждый раз, когда ваш реагирующий компонент выполняет рендеринг, приведенный выше код будет выполняться снова, а при втором рендеринге он будет игнорировать начальное состояние (если оно было обновлено), и, таким образом, abc будет содержать следующее значение состояния.

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