Автор оригинала: FreeCodeCamp Community Member.
Этот пост разделен на 2 части
- Первая часть демонстрирует, как создать простое приложение RACT, используя CLI «Create-React-App» и объясняет структуру проекта.
- Вторая часть объясняет существующий код, который я опубликовал в Github. Этот код демонстрирует использование компонентов, связь между компонентами, создавая HTTP-вызовы и Ractstrap (Bootstrap, который написан для реагирования).
Часть 1.
Установите nodejs, если еще не присутствуют
NODEJS необходимо, поскольку библиотеки, необходимые для реагирования, загружаются с использованием управляющего узла пакета (NPM). Обратитесь к https://nodejs.org/en/ установить Nodejs.
Установите пакет узла Create-ract-app
Create-React-App Узел Package помогает настроить реактивный проект. Установите пакет узла Create-React-App, глобально используя следующую команду.
npm install -g create-react-app
Создать проект
Проект может быть создан с использованием create-raction-приложение. Используйте следующую команду для создания проекта.
npx create-react-app first-react-app
Первое реактивное приложение это название приложения. Вышеуказанная команда создает папку под названием Первое реактивное приложение который является папкой проекта. Чтобы проверить, если все было правильно настроено, перейдите в папку Project и запустите приложение, используя следующую команду.
cd first-react-app npm start
Перейдите в свой браузер и пройдите следующий URL localhost: 3000 Вы должны быть в состоянии увидеть, что ваше приложение работает. Приложение будет выглядеть так в вашем браузере:
Базовая структура папки объяснила
Когда вы создали проект, вы бы заметили, что он создал кучу файлов. Здесь я перейду некоторые важные файлы и папки, о которых вы должны знать.
- Package.json: Этот файл имеет список зависимостей узла, которые необходимы.
- Public/index.html: Когда приложение запускается, это первая страница, которая загружена. Это будет единственный HTML-файл во всем приложении, поскольку React обычно написан с использованием Jsx которые я буду охватить позже. Кроме того, этот файл имеет строку кода
- SRC/index.js : Это файл JavaScript, соответствующий index.html. Этот файл имеет следующую строку кода, которая очень важна. Reactom.runder (
, Document.GetelementById («root»)); - Вышеуказанная линия кода говорит, что Приложение Компонент (будет прикрыть компонент приложения в ближайшее время) должен быть загружен в HTML-элемент с ID корень Отказ Это ничего, кроме Div Element присутствует в index.html.
- SRC/index.css : Файл CSS, соответствующий index.js.
- SRC/App.js : Это файл для Приложение Составная часть. Приложение Компонент является основным компонентом в реакции, который действует как контейнер для всех других компонентов.
- src/app.csss : Это файл CSS, соответствующий Приложение Составная часть
- построить: Это папка, в которой хранятся встроенные файлы. Реагистрационные приложения могут быть разработаны с использованием самого JSX или обычного JavaScript, но с использованием JSX определенно облегчает кодировку для разработчика:). Но браузеры не понимают JSX. Таким образом, JSX должен быть преобразован в JavaScript перед развертыванием. Эти преобразованные файлы хранятся в папке сборки после объединения и минификации. Чтобы увидеть папку сборки, запустите следующую команду
npm run build
Создание компонентов
Компонент в реакции делает определенную функциональность. Приложение – это не что иное, как набор компонентов. Каждый компонент может иметь несколько дочерних компонентов, а компоненты могут взаимодействовать друг с другом.
Давайте создадим реактивный компонент сейчас.
Внутри SRC Папка создает файл, называемый AS Firstcomponent.js и скопируйте следующий код в Firstcomponent.js.
import React, {Component} from 'react'; export default class FirstComponent extends Component { constructor(props) { super(props) } render() { const element = (Text from Element) return () } }First Component
{this.props.displaytext} {element}
- Имя компонента – Первый комфорт который обозначается именем файла, а также в операторе
Экспортировать класс по умолчанию FirstComponent расширяет компонент
- реквизит Атрибут в конструкторе будет содержать все параметры, которые передаются в качестве ввода к этому компоненту.
- Визуализация (): Возвращаемое значение этой функции отображается (отображается) на экране. Всякий раз, когда функция Render () называется на экране, перенаправляется. Это обычно делается автоматически приложением. Код, который выглядит очень похоже на HTML в этой функции, это не что иное, как Jsx.
Jsx.
Jsx Выглядит очень похоже на HTML, но имеет полную мощность JavaScript. Здесь я объясню код JSX и что он пытается сделать.
render() { const element = (Text from Element) return () }First Component
{this.props.displaytext} {element}
Первая строка Const Element = (
Создает элемент div и назначает его постоянно называемую элементу. Этот своеобразный синтаксис, который вы видите, это noth ing, но jsx.
Внутри оператора возврата вы видите следующий синтаксис кода.
First Component
{this.props.displaytext} {element}
Здесь классное значение используется, чтобы указать на класс CSS.
это просто нормальный HTML-синтаксис. Первый компонент
{this.proops.displayText}
Используется для доступа к атрибуту, вызываемую как DisplayText из реквизитов (поэтому DisplayText передается как вход, когда этот компонент называется). Здесь DisplayText это просто пользовательское название, которое я дал. {Element}
Это постоянная, которая была создана, которая, в свою очередь, содержит элемент div.
Используя компонент
Первый комфорт был создан, но пока не используется нигде. Давайте добавим Первый комфорт к Приложение Составная часть. Вот модифицированный код для App.js.
import React, { Component } from 'react'; import logo from './logo.svg'; import './App.css'; import FirstComponent from './FirstComponent' class App extends Component { render() { return (); } } export default App;Welcome to React
To get started, edit src/App.js and save to reload.
Первый комфорт Необходимо импортировать в компонент приложений, который сделан в строке Импорт первыйComponent от './firstcomponent'
Тогда Первый комфорт добавляется в Приложение Компонент с использованием линии
Здесь DisplayText передается как атрибут первым.
Теперь вы можете запустить приложение, используя команду Начнем NPM
Вы должны увидеть следующий результат в браузере.
Поздравляю?
Теперь вы знаете, как создать приложение React и как создавать и использовать компоненты RACT. Вы также немного знаете о JSX:)
Следующая часть объяснит существующий React Code из GitHub. Часть 2 код отличается от кода, который мы написали в части 1.
Часть 2
Код
Следующий код объясняется здесь, поэтому клонирует репо на ваш компьютер. REPO имеет инструкции о том, как клонировать и настроить код на вашем компьютере.
https://github.com/aditya-sridhar/simple-reactjs-app
URL-адрес приложений
Чтобы увидеть, как окончательное приложение выглядит так, будто вы можете нажать на следующий URL. Это даст хорошей идее относительно того, что приложение пытается сделать
https://aditya-sridhar.github.io/simple-reactjs-app
Приложение будет выглядеть так на мобильном экране
Что делает это приложение
Это приложение отображает список клиентов. Когда клиент выбран, он отображает детали выбранного клиента. Это одностраничное приложение (SPA). React лучше всего подходит для приложений для одной страницы Отказ Приложения для одной страницы Отображайте все на одной странице.
Объяснение структуры приложений
Компонент клиентов
Этот компонент отображает список клиентов. Это соответствует файлу SRC/Customers.js Отказ Этот компонент имеет следующий конструктор.
constructor(props) { super(props) this.state = { selectedCustomer: 1 } }
реквизит уже были объяснены. Но здесь вы тоже видите Это Отказ Всякий раз, когда состояние изменяется, компонент перенаправлен. Здесь Государство имеет один параметр под названием ВыбранныйCustomer который должен отслеживать, какой клиент выбран. Если ВыбранныйCustomer Изменения тогда Компонент и его дочерние компоненты перенаправлены. Конструктор используется только для установки реквизит и государственный. Также реквизит Должен никогда не редактировать внутри компонента.
Следующее, что вы заметите, это следующий код.
componentDidMount() { this.getCustomerData(); }
ComponentDidMount () Это функция, которая называется, как только компонент отображается. Таким образом, это можно использовать для установки некоторых начальных значений, а также данные нагрузки. Здесь он называется функцией, называемой как getcustomerdata ()
Следующий кусок кода, который вы видите, это
getCustomerData() { axios.get('assets/samplejson/customerlist.json').then(response => { this.setState({customerList: response}) }) };
Эта функция getcustomerdata () Делает HTTP Call для прочитанного образца JSON, содержащего список клиентов из Активы/Samberjson/CustomerList.json. При успешном получении ответа состояние системы изменяется, назначая ответ к клиентлист. Вы можете задаться вопросом, почему мы никогда не добавили подробное внимание в конструкторе. Причина в том, что вы можете динамически добавлять параметры в состояние в любой точке в коде. Единственное требование заключается в том, что в конструкторе должно быть определено, по меньшей мере, пустое состояние должно быть определено.
Здесь Axios Библиотека используется для создания HTTP Call. Я предоставил документацию для Axios в разделе «Ссылки».
Следующая функция – Render () Функция, которая возвращает, какие элементы должны быть отображены на экране. Основные точки фокуса в функции рендеринга
Каждый клиент в списке имеет кнопку, называемую как Нажмите, чтобы посмотреть детали Отказ Приведенный выше фрагмент кода говорит, что всякий раз, когда кнопка нажала, затем измените состояние ВыбранныйCustomer к идентификатору выбранных клиентов. Поскольку государственные изменения здесь, компонент и его дочерний компонент будут перераспределены.
Другой фрагмент кода, который важен, это
Этот фрагмент говорит, что CustomerDetails это дочерняя компонент Клиенты компонент, а также проходит ВыбранныйCustomer ID как вход в CustomerDetails составная часть
Компонент CuditualDetails
Этот компонент отображает детали выбранного клиента. Некоторые важные фрагменты кода из этого компонента будут объяснены здесь:
componentDidUpdate(prevProps) { //get Customer Details only if props has changed //(props is the input) if (this.props.val !== prevProps.val) { this.getCustomerDetails(this.props.val) } }
ComponentDidupdate () Функция называется всякий раз, когда компонент перенаправлен. Здесь мы называем getcustomerdetails () Функция, если вход к этому компоненту изменился при изменении компонента. Вход передан getcustomerdetails () Функция это this.props.val Отказ this.props.val В свою очередь, получает свою ценность от Клиенты Компонент (выделенныйCustomer был передан в качестве ввода к этому). Чтобы узнать, использовал ли вход, используемый фрагмент кода IS this.props.val.val.
getCustomerDetails(id) { axios.get('assets/samplejson/customer' + id + '.json').then(response => { this.setState({customerDetails: response}) }) };
getcustomerdetails () Функция делает вызов HTTP для получения образца JSON, который содержит детали клиента. ID Параметр используется для знания того, какие детали клиентов требуются. ID это не что иное, как this.props.val. Когда ответ успешно получен, состояние этого компонента изменяется путем назначения ответ к CustomerDetails Отказ
Render () Функция для этого компонента довольно простая и простая, поэтому не будет покрывать это здесь
Рекомендации
Create-React-App: Обратитесь к https://github.com/facebook/create-reaact-app Чтобы узнать, что все можно сделать с помощью приложения Create-React-App
Reactjs: Обратитесь к https://reactjs.org/ понять концепции реагирования. Документация очень хорошая.
React Bootstrap: Обратитесь к https://react-bootstrap.github.io/getting-started/introduction/ Чтобы понять, как использовать React Buttrap
Axios: Обратитесь к https://www.npmjs.com/package/axios Чтобы узнать больше о том, как использовать библиотеку Axios, чтобы сделать HTTP-запросы
Поздравляю снова?
Теперь вы знаете, как использовать компоненты, как общаться от родителя к дочерним компоненте, а также немного о рендеринге
Основные концепции были покрыты в этом посте и надеются, что это полезно
Об авторе
Я люблю технологии и следую по достижению технологии. Мне также нравится помогать другим с любыми знаниями у меня в технологическом пространстве.
Не стесняйтесь связаться со мной на моей учетной записи LinkedIn https://www.linkedin.com/in/aditya1811/
Вы также можете следовать за мной в Twitter https://twitter.com/adityaSridhar18.
Мой сайт: https://adityasridhar.com/
Другие соответствующие сообщения мной
Быстрое руководство, которое поможет вам понять и создавать угловые 6 приложений
Быстрое введение в Vue.js