Что доллар и двоеточие представляют в React?
Что означают двоеточие и доллар, указанные ниже, в React?
Пример для двоеточия:
Пример для доллара (используется прямо перед выражением, но почему):
3 ответа
$ не реагирует. Но его особенность ES6 назвала литералы шаблонов больше в шаблонных литералах базовых или шаблонных литералах.
В реакции у вас есть компоненты Route и Link в модуле реакции маршрутизатора.
Маршрут принимает два свойства: path and component
, Когда путь соответствует пути, указанному для компонента, он вернет указанный компонент
В вашем маршруте вы говорите, чтобы соответствовать любому пути, который имеет фильм / anyid, что означает, что он перемещается к указанному компоненту (здесь фильм) с заданным параметром
Ссылка используется, чтобы указать, по какому пути идти. Это просто обертка <a>
тег и помогает в переходе к указанному пути, а в текущем примере - к /movie/1 (при условии, что this.state.movies[index].id равен 1)
Ну, это особенность JavaScript ES6,
Как вы можете себе представить до ES6, вы можете сделать что-то вроде:
var user = 'xyz' + newuser;
ES6:
var user = `xyz${newuser}`;
Шаблонные литералы заключены в галочку (``
), Литералы шаблона могут содержать заполнители. Они обозначены знаком доллара и фигурными скобками (${expression})
,
Вы можете прочитать больше о литералах шаблона на Mozilla
Я тоже потратил много времени, пытаясь выяснить, как работает толстая кишка. Довольно неприятно пытаться перепроектировать примеры вместо того, чтобы объяснять это в разделе API.
Сказав это, есть подсказка в документации https://reacttraining.com/react-router/core/api/Route, где говорится, что путь принимает "Любой допустимый путь URL или массив путей, которые путь к регулярному выражению @^1.7.0 понимает ". Если вы посмотрите документацию для path-to-regexp, вы увидите, что "Именованные параметры определяются с помощью префикса двоеточия перед именем параметра... По умолчанию параметр будет соответствовать до следующего сегмента пути"
Затем вы можете посмотреть https://reacttraining.com/react-router/core/api/match, где объясняется, как получитьmatch
объект и как вы можете извлечь из него параметры.
Доллар - это синтаксис es6 для использования переменных в строках.
В :
в данном случае является частью path-to-regexp
синтаксис, используемый React Router (и Express) для путей; он позволяет вам указать параметр. Это имеет два следствия.
- Чтобы сопоставить несколько URL-адресов.
<Route path='/app/:page'>
Подойдет любому /app/
за которым следует что-нибудь. Обратите внимание, что здесь есть гибкие типы соответствия, но это не типичное регулярное выражение, а именно: https://github.com/pillarjs/path-to-regexp/tree/v1.7.0
- Вторая цель - сделать параметр (что бы ни было после
/app/
) доступно через React Router'suseParams
крючок (https://reactrouter.com/web/api/Hooks/useparams).
Хороший пример синтаксиса можно найти в разделе "Параметры маршрута" на этой странице:https://expressjs.com/en/guide/routing.html