
React позволяет вам разрабатывать приложение, создавая повторно используемые компоненты.
Реагировать компоненты-
Компонент React — это часть UI (пользовательского интерфейса), которая имеет собственную логику и внешний вид.
Типы компонентов React:–
- Компонент класса (также называемый компонентом с отслеживанием состояния)
- Функциональный компонент (также называемый компонентом без сохранения состояния)
После появления React Hooks написание функциональных компонентов стало стандартным способом написания компонентов React в современных приложениях. Таким образом, здесь мы сосредоточимся только на функциональных компонентах.
Функциональные компоненты-
- Это простая функция JavaScript, которая принимает свойства необязательный аргумент и возвращает элемент React.
- Существует два распространенных способа определения функционального компонентав React: с помощью ключевого слова const или с помощью функция ключевое слово.
const MyComponent = () => {
return (
<div>
<h1>Hello, World!</h1>
</div>
);
};
function MyComponent() {
return (
<div>
<h1>Hello, World!</h1>
</div>
);
}
Примечание. Имена компонентов React всегда должны начинаться с заглавной буквы.
Разница между двумя подходами: –
- Функциональные компоненты, определенные с помощью const, определяются как стрелочные функции, а те, которые определяются с помощью function, являются обычными функциями. Стрелочные функции имеют некоторые отличия в поведении и синтаксисе по сравнению с обычными функциями.
- Еще одно отличие состоит в том, что компоненты, определенные с помощью const, могут использовать преимущества некоторых функций ES6, таких как деструктуризация и значения параметров по умолчанию, что может сделать код более кратким и выразительным. . Например:
const MyComponent = ({ name = “World” }) => {
return (
<div>
<h1>Hello, {name}!</h1>
</div>
);
};
Это определяет функциональный компонент, который принимает свойство name и по умолчанию имеет значение «World», если свойство не указано. Этот синтаксис невозможен с обычным функциональным компонентом.
Как вложить компонент в другой компонент?
export default function MyApp() {
return (
<div>
<h1>Welcome to my app</h1>
<MyComponent />
</div>
);
}
Совет💡:
React способствует повторному использованию кода, поэтому рекомендуется разбивать ваши компоненты на отдельные файлы. Поместите свой код в новый файл «.js», как показано ниже:
function Car() {
return <h2>Hi, I am a Car!</h2>;
}
export default Car;
Понимание React JSX -
- JSX расшифровывается как JavaScript XML и позволяет нам писать HTML в React.
- JSX преобразует теги HTML в элементы реакции.
- Вы должны закрыть такие теги, как
<br />.
function MyPage() {
return (
<>
<h1>About</h1>
<p>Hello <br />How do you do?</p>
</>
);
}
- Компонент React не может возвращать несколько тегов JSX. Они должны быть заключены в общий родитель, например
<div>...</div>или пустая оболочка<>...</>. - В JSX фигурные скобки «{}» используются для встраивания выражений Javascript в разметку.
import React from 'react';
function App() {
const name = 'John';
const age = 30;
return (
<div>
<h1>Welcome to my app, {name}!</h1>
<p>You are {age} years old.</p>
</div>
);
}
export default App;
const user = {
name: ‘Bob’,
age: 50,
};
export default function Profile() {
return (
<>
<h1>{user.name}</h1>
</>
);
}
Пример рендеринга массива:
import React from 'react';
function List(props) {
const items = props.items;
return (
<ul>
{items.map(item => <li key={item.id}>{item.name}</li>)}
</ul>
);
}
export default List;
Условный рендеринг в реакции:
Существует несколько способов реализации условного рендеринга в зависимости от варианта использования:
- Инструкции If-Else –
let content;
if (LoggedIn) {
content = <UserDashboard />;
} else {
content = <LoginForm />;
}
return (
<div>
{content}
</div>
);
2.Тернарный оператор. Его можно использовать для достижения того же результата, что и оператор if-else, но с более коротким синтаксисом.
return(
<>
{loggedIn ? <UserDashboard /> : <LoginForm />}
</>
);
3. Логический && Оператор. Этот подход хорошо работает, когда вы хотите визуализировать компонент, только если выполняется условие.
{loggedIn && <UserDashboard />}
4. Переключить операторы –отображение различных компонентов на основе значения.
<div>
{switch (page) {
case 'home':
return <HomePage />;
case 'about':
return <AboutPage />;
case 'contact':
return <ContactPage />;
default:
return <NotFoundPage />;
}}
</div>