В этом уроке я подробно расскажу о том, как изучить React JS с нуля за всего 2 часа. React – это JavaScript библиотека для создания пользовательских интерфейсов. Он используется многими крупными компаниями, такими как Facebook, Instagram, Netflix и Airbnb. React позволяет создавать динамические веб-приложения, реагирующие на изменения в данных и обновляющие интерфейс без перезагрузки страницы.
Прежде чем начать изучение React, вам потребуется некоторые базовые знания веб-разработки, такие как HTML, CSS и JavaScript. Если у вас уже есть такие навыки, то вы можете легко освоить React за 2 часа. Если же вы новичок в веб-разработке, то можете потребоваться немного больше времени на изучение.
Шаг 1: Установите Node.js и npm
Первым шагом для начала работы с React является установка Node.js и npm. Node.js – это среда выполнения JavaScript на стороне сервера, которая позволяет запускать JavaScript код за пределами браузера. npm – менеджер пакетов для JavaScript, который позволяет управлять зависимостями в вашем проекте.
Вы можете загрузить Node.js с официального сайта (https://nodejs.org/) и установить его на свой компьютер. После установки Node.js, npm будет автоматически установлен вместе с ним.
Шаг 2: Установите Create React App
Create React App – это инструмент для быстрого создания React приложений без необходимости настройки среды разработки. Для установки Create React App выполните следующую команду в терминале:
npx create-react-app my-app
Эта команда создаст новый проект React с названием "my-app". Замените "my-app" на любое другое имя, которое вы хотите использовать для вашего проекта.
Шаг 3: Запустите React приложение
После того как проект был создан, перейдите в его директорию и запустите приложение с помощью следующей команды:
cd my-app
npm start
Эта команда запустит локальный сервер и откроет ваше React приложение в браузере. Теперь вы можете начать разработку вашего приложения. В React приложении вы найдете файлы App.js, index.js и index.html. App.js содержит основную компоненту приложения, index.js – точку входа в приложение, а index.html – шаблон страницы.
Шаг 4: Изучите основы React
React основан на компонентах, которые представляют собой независимые блоки кода, отвечающие за отображение определенной части интерфейса. Каждый компонент может иметь внутреннее состояние и принимать входные параметры в виде свойств (props).
В React компоненты могут быть функциональными или классовыми. Функциональные компоненты – это простые функции, которые возвращают JSX (расширение синтаксиса JavaScript, позволяющее писать HTML внутри JavaScript). Классовые компоненты – это классы, наследуемые от React.Component, у которых есть метод render() для возвращения JSX.
Например, вот простой функциональный компонент:
function Hello() {
return <h1>Hello, World!</h1>;
}
И вот простой классовый компонент:
class Hello extends React.Component {
render() {
return <h1>Hello, World!</h1>;
}
}
Шаг 5: Изучите работу с состоянием и событиями
В React компоненты могут иметь внутреннее состояние, которое можно изменять с помощью метода setState(). Состояние компонента определяет, как компонент будет выглядеть и вести себя в определенный момент времени. Вы можете инициализировать состояние компонента в конструкторе и изменять его с помощью метода setState().
Также в React вы можете обрабатывать события, такие как клики мыши, наведение курсора и т.д. События передаются в JSX как атрибуты и обрабатываются с помощью функций обратного вызова.
Вот пример компонента, который меняет свое состояние при клике на кнопку:
class Counter extends React.Component {
constructor(props) {
super(props);
this.state = { count: 0 };
}
handleClick = () => {
this.setState({ count: this.state.count + 1 });
}
render() {
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={this.handleClick}>Increment</button>
</div>
);
}
}
Шаг 6: Изучите передачу данных через props
В React компоненты могут принимать данные от родительских компонентов через свойства (props). Props передаются компонентам как атрибуты и доступны через this.props.
Пример компонента, который принимает свойство (props) и отображает его значение:
function Welcome(props) {
return <h1>Hello, {props.name}!</h1>;
}
const element = <Welcome name="John" />;
Шаг 7: Изучите жизненный цикл компонента
React компоненты имеют жизненный цикл, который состоит из различных методов, вызываемых на разных этапах жизни компонента. Некоторые из наиболее используемых методов жизненного цикла:
- componentDidMount() – вызывается после того, как компонент был добавлен в DOM.
- componentDidUpdate() – вызывается после того, как компонент был обновлен.
- componentWillUnmount() – вызывается перед удалением компонента из DOM.
Шаг 8: Изучите работу с API
В React вы можете работать с API, получая данные из удаленного сервера с помощью сетевых запросов. Для этого вы можете использовать встроенный fetch API или любую библиотеку для работы с сетью, такую как Axios или Fetch.
Вот пример компонента, который получает данные с сервера и отображает их:
class PostList extends React.Component {
state = { posts: [] };
componentDidMount() {
fetch("https://jsonplaceholder.typicode.com/posts")
.then(response => response.json())
.then(posts => this.setState({ posts }));
}
render() {
return (
<div>
{this.state.posts.map(post => <p key={post.id}>{post.title}</p>)}
</div>
);
}
}
Это всего лишь небольшой обзор основ React. Чтобы глубже понять React, вам нужно прочитать официальную документацию и пройти дополнительные уроки. Надеюсь, что этот урок поможет вам начать изучение React и разработку динамических веб-приложений. Удачи!
Всех с праздником! 🎉
🔥 Забрать подписку по скидке 50% + тариф "навсегда" (ТОЛЬКО ДО 3 сентября) – https://htmllessons.io/premium
*В сентябре подписок в продаже больше не будет, будут только штучные продажи каждого продукта отдельно. Сейчас последняя возможность!
1 03
59
55
Моргни в следующем видео, если тебя держат в заложниках. Ты выкладываешь видео как терминатор 😂 Пока единственный канал, который успевает выкладывать туториалы быстрее чем выходят фреймворки на JS
Вау, как ты умеешь заряжать❤
Отличное видео, спасибо!!!! как раз учу сейчас, а новых видео по реакт оч мало
Братан , с нуля тебя сложно понять , к тебе надо идти после определенных знаний .
Жду польный курс по Tailwind 2024❤❤
Больше 3тысяч лайков ) ждем next)
Да не плохо было бы Tailwind + react какой-то не большой сайт с разбором
если чесно то ето ахуенно
топ
Используется ли в этом видео state manager? И будут ли новые видео с использованием Redux? Так как он все еще актуален в вакансиях. Будет ли правильно после этого курса посмотреть "Полный курс Redux Toolkit + RTK Query для начинающих"?
Блин, а вот его не могу смотреть в ускоренном режиме)
Редко такое встречается.
Продолжай в том же духе. выполнена огромная работа. благодарность
Макс, супер конечно, что делаешь актуальный образовательный контент, да еще и бесплатный. Респект за это.
Но над качеством подачи материала еще работать и работать. Хотя бы какой-то, примерный код, надо заранее накидывать..
пол года писал на vue и все равно очень трудно(
2:08:36 Попробовал Макс сделать через <div> и contentEditable, как ты и предложил. В итоге, результат такой же, как и в <textarea>, т.е. тег <b> вставляется как текст, а не применяется как стиль. Ты был прав, у div нет selectionStart и selectionEnd.
Шаги как делал:
1. Вешаю на этот див слушатель onMouseUp
const handleMouseUp = () => {
// получаю выделенный текст
const selection = window.getSelection()
if (!selection) return
// получаю стартовую и конечную поозицию выделенного текста
const range = selection.getRangeAt(0)
const startPos = range.startOffset
const endPos = range.endOffset
// сохраняю все в стейт
setSelection({
text: selection.toString(),
start: startPos,
end: endPos,
})
}
2.
const applyFormat = (style: TStyle) => {
if (!textRef.current) return
if (!textRef.current.textContent) return
if (!selection.text) return
// тут как и с textarea
const before = text.substring(0, selection.start)
const after = text.substring(selection.end)
setText(before + applyStyle(style, selection.text) + after)
}
3. div вот так выглядит
<div
contentEditable
ref={textRef}
className={styles.editor}
spellCheck="false"
onMouseUp={handleMouseUp}
onChange={() => setText(textRef.current?.textContent ?? '')}
>{text}</div>
Когда урок по Blazor?