React, это мощная библиотека, которая позволяет с легкостью создавать пользовательский интерфейс с помощью JSX. Мы вернемся к этому подробнее через минуту. Это мощный инструмент, который я недавно добавил в свой набор навыков, который изменил мой образ мышления, когда дело доходит до создания веб-приложений.

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

Состояние - это место, где вы будете хранить данные, которые хотите передать в своем приложении. В этом случае Pokemon! Изначально мы начинаем наше состояние в форме того, что мы хотим, чтобы оно содержало. Итак, в этом случае мне нужна коллекция покемонов, поэтому для нее установлен массив. Я также хочу иметь возможность искать покемонов, поэтому давайте установим это значение в пустую строку, поскольку мы планируем, что наш поиск будет отправлять новую строку, то есть «Чармандер».

Теперь нам понадобится запрос на выборку, чтобы получить всех наших покемонов:

Там есть ключевое слово, которое очень важно!

Теперь, когда мы получили покемона, мы изменим свое состояние, чтобы все наши покемоны были помещены в массив «покемонов» [].

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

Теперь, когда этот компонент будет отрисован, мы вызовем нашу функцию getPokemon (), чтобы получить нашего покемона. Теперь мы можем вызвать наш список покемонов с помощью this.state.pokemon в этом компоненте.

Теперь перейдем к рендерингу, но я не хочу рендерить всех покемонов на страницу за один раз… Я не думаю, что это должно быть задачей этого компонента. Так что я передам его как опору PokemonCollection. Я назову эту опору покемон. Кажется уместным. Для смеха и для того, чтобы код выглядел чище, я деконструирую его так, чтобы вместо записи pokemon = {this.state.pokemon} я мог написать pokemon = {pokemon}.

Теперь в нашей коллекции PokemonCollection есть вся коллекция Pokemon. Имеет смысл, правда? В любом случае, теперь я хочу сгруппировать наших покемонов в ряды по шесть штук. Не будем вдаваться в подробности, но мы хотим передать нашего покемона еще раз, но по одному! Итак, просматривая каждого покемона один за другим, мы визуализируем компонент ‹PokemonCard /› для каждого из них.

Взгляните, как будет выглядеть отдельная «карта покемона»:

Вот как выглядит фрагмент кода:

Взгляните на это? Выглядишь немного знакомо? Если вы привыкли кодировать на ванильном JS и еще не касались React, вы, вероятно, воспользуетесь своими знаниями как HTML-кода, так и JavaScript-кода и как бы сложите их воедино.

Пользователи JavaScript также заметят, что addEventListener отсутствует на странице для распознавания клика! Вместо этого мы используем функцию onClick = {/ * для выполнения * /}. Он делает то же самое. Здесь мы храним состояние, чтобы узнать, был ли нажат покемон, чтобы показать переднюю или заднюю часть покемона, и мы абстрагировали это в функцию в компоненте.

Это JSX, это расширение синтаксиса JavaScript, он очень похож на HTML, но под ним скрывается вся мощь JavaScript.

После рендеринга в браузере посмотрите, как это выглядит в консоли:

React декларативен, вы можете все довольно четко прочитать (если вы тоже хорошо назвали свои функции и компоненты!)

Надеюсь, вы сможете понять, почему это отличный способ создания веб-приложений. Больше никаких getElementById, поскольку JSX выполняет всю работу за вас, создавая элемент, просто написав ‹div›. Фактически, он выполняет JavaScript под ‹/div›.

Это пока я! До новых встреч, истинно верующие!