You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 15, 2022. It is now read-only.
* Update README.md
Библиотека - она.
* Update README.md
В основном, исправлены опечатки. Подставлены знаки тире (em dash). Убраны типографские кавычки из кода.
* Update README.md
Исправлены опечатки, некоторые стилистические ошибки.
* Update README.md
Стилистические изменения
* Update README.md
Стилистические изменения
* Update README.md
Стилистические изменения
* Update README.md
Стилистические изменения
* Update README.md
Стилистические изменения
* Update README.md
Подставлены знаки тире (em dash)
Copy file name to clipboardExpand all lines: 01-introduction-to-react/README.md
+17-17Lines changed: 17 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Урок 1 - Введение в React
1
+
# Урок 1 — Введение в React
2
2
3
3
[мини-тест по содержанию урока (5 минут)](http://itsquiz.com/activations/566533792ba96aaf3c016c34?ref=reactjs-essential)
4
4
@@ -12,41 +12,41 @@
12
12
13
13
#### Что такое React?
14
14
15
-
ReactJS - это JаvaScript библиотека для построения пользовательских интерфейсов. Это не MVC фреймворк. К нему можно применить только V из этой аббревиатуры. Такая узкая сфера применения дает свободу использования React в различных системах в комбинации с другими библиотеками.
15
+
ReactJS — это JаvaScript библиотека для построения пользовательских интерфейсов. Это не MVC фреймворк. К ней можно применить только V из этой аббревиатуры. Такая узкая сфера применения дает свободу использования React в различных системах в комбинации с другими библиотеками.
16
16
17
17
React был представлен Facebook в 2013 году, и очень быстро обрел популярность. Сегодня его используют многие известные компании включая Instagram, Airbnb, Ebay, Netflix, Yahoo и [другие](https://github.com/facebook/react/wiki/Sites-Using-React).
18
18
19
-
Основным отличием React от других JavaScript фреймворков является то, как он управляет состоянием приложения. Если вспомнить, как пользователи взаимодействовали с веб-страницами еще 10-15 лет назад, то увидим такую картину:
19
+
Основным отличием React от других JavaScript фреймворков является то, как он управляет состоянием приложения. Если вспомнить, как пользователи взаимодействовали с веб-страницами еще 10–15 лет назад, то увидим такую картину:
20
20
21
21

22
22
23
-
Сервер всегда возвращал статическую страницу, и реакцией на действия пользователя была полная перезагрузка страницы. Преимуществами такого подхода, была простота в реализации и понимании, недостатками - скорость работы, отзывчивость, UX и потеря состояния при каждой перезагрузке.
23
+
Сервер всегда возвращал статическую страницу, и реакцией на действия пользователя была полная перезагрузка страницы. Преимуществами такого подхода, была простота в реализации и понимании, недостатками — скорость работы, отзывчивость, UX и потеря состояния при каждой перезагрузке.
24
24
25
-
Все очень изменилось с появлением AJAX, это подход к построению интерактивных веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. То есть, в фоновом режиме отправляются запросы на сервер, приходят с него ответы, изменяется состояние приложения и, соответственно, внешний вид. Именно такой подход породил понятие Single Page Application.
25
+
Все очень изменилось с появлением AJAX, — это подход к построению интерактивных веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. То есть, в фоновом режиме отправляются запросы на сервер, приходят с него ответы, изменяется состояние приложения и, соответственно, внешний вид. Именно такой подход породил понятие Single Page Application.
26
26
27
27

28
28
29
29
Но каждое визуальное изменение на странице соответствует изменению ее DOM дерева. Не секрет, что все манипуляции с DOM деревом являются очень ресурсоемкими операциями, т.к. изначально DOM дерево было статическим и никакой динамики не предусматривало.
30
30
31
31

32
32
33
-
Именно поэтому в React используется виртуальный DOM. Это такая легковесная копия реального DOM дерева на Javascript. Таким образом, React манипулирует не с реальным (синоним - медленным) DOM деревом, а с виртуальным.
33
+
Именно поэтому в React используется виртуальный DOM. Это такая легковесная копия реального DOM дерева на Javascript. Таким образом, React манипулирует не с реальным (синоним — медленным) DOM деревом, а с виртуальным.
Он сравнивает предыдущее состояние виртуального DOM дерева с его следующим состоянием и находит минимальное количество манипуляций, которые можно произвести уже с реальным DOM, чтобы обновить вид приложения согласно его новому состоянию.
И это действительно быстро работает. А все что вам нужно делать - это просто менять состояние вашего приложения, а все остальное React сделает уже за вас!
41
+
И это действительно быстро работает. А все что вам нужно делать — это просто менять состояние вашего приложения, а все остальное React сделает уже за вас!
42
42
43
43
#### JSX
44
44
45
45
Для рендеринга данных в React используется JSX. JSX нужен для JavaScript XML — разметки в стиле XML внутри компонентов React. React работает и без JSX, но именно JSX поможет сделать ваши компоненты более читаемыми, поэтому рекомендуется использовать его.
46
46
47
47
```jsx
48
48
// с JSX
49
-
var app =<Nav color=“blue">
49
+
var app =<Nav color="blue">
50
50
<Profile>click</Profile>
51
51
</Nav>;
52
52
```
@@ -106,13 +106,13 @@ var HelloWorld = React.createClass({
106
106
});
107
107
```
108
108
109
-
У каждого компонента есть один обязательный метод - ```render```, который возвращает JSX разметку, соответствующую виду компонента.
109
+
У каждого компонента есть один обязательный метод —```render```, который возвращает JSX разметку, соответствующую виду компонента.
110
110
111
111
**Внимание!** Названия всех классов для ваших компонентов должны начинаться с большой буквы.
112
112
113
113
#### Параметры aka props
114
114
115
-
Каждый компонент может принимать параметры. Они передаются из выше стоящих компонентов. К параметрам компонента можно обращаться используя ```this.props.propName```.
115
+
Каждый компонент может принимать параметры. Они передаются из вышестоящих компонентов. К параметрам компонента можно обращаться используя ```this.props.propName```.
116
116
117
117
```jsx
118
118
var Heading =React.createClass({
@@ -128,11 +128,11 @@ var Hello = React.createClass({
Также каждый компонент может хранить свое состояние. К нему можно получить доступ, обратившись к ```this.state```. В состоянии компонента стоит хранить данные, от которых компонент напрямую зависит внешний вид компонента, и при изменении которых его внешний вид тоже должен меняться (будет вызываться метод ```render```). Cостояние компонента доступно только внутри самого компонента. Для объявления начального состояния компонента, нужно использовать метод ```getInitialState```. Этот метод вызывается до того, как компонент отобразиться в доме и определяет первоначальное значение состояния компонента. Для того, чтобы модифицировать состояние компонента нужно вызвать метод ```this.setState({ /* новое состояние */ })```, тогда состояние компонента измениться и вызовется метод ```render```.
135
+
Также каждый компонент может хранить свое состояние. К нему можно получить доступ, обратившись к ```this.state```. В состоянии компонента стоит хранить данные, от которых напрямую зависит внешний вид компонента, и при изменении которых его внешний вид тоже должен меняться (будет вызываться метод ```render```). Cостояние компонента доступно только внутри самого компонента. Для объявления начального состояния компонента, нужно использовать метод ```getInitialState```. Этот метод вызывается до того, как компонент отобразится в доме и определяет первоначальное значение состояния компонента. Для того, чтобы модифицировать состояние компонента нужно вызвать метод ```this.setState({ /* новое состояние */ })```, тогда состояние компонента изменится и вызовется метод ```render```.
136
136
137
137
```jsx
138
138
var Component =React.createClass({
@@ -193,7 +193,7 @@ var EventComponent = React.createClass({
193
193
194
194
О том, какие события поддерживаются можно прочитать [тут](https://facebook.github.io/react/docs/events.html).
195
195
196
-
## Вопросы к самопроверке
196
+
## Вопросы для самопроверки
197
197
198
198
- Как работает виртуальный DOM?
199
199
- Как можно создать компонент? Какая функция используется для этого?
@@ -214,31 +214,31 @@ var EventComponent = React.createClass({
214
214
215
215
## Домашнее задание
216
216
217
-
**Задание 1: Сделать компонент для отображения статьи**
217
+
**Задание 1: Сделать компонент для отображения статьи**
218
218
219
219
_Уровень сложности: низкий_
220
220
221
221
В компонент передается заголовок, имя автора и текст, а он их отображает, как статью. Внешний вид на ваше усмотрение.
В поле ввода вводится текст. Снизу надпись, которая отображает “Hello, <введенный текст>!”. Текст должен меняться по мере ввода. Если в поле ничего не введено, то должно быть выведено “Hello, stranger!”.
**Задание 3: Дополнительная информация о контактах**
233
+
**Задание 3: Дополнительная информация о контактах**
234
234
235
235
_Уровень сложности: средний_
236
236
237
237
Усовершенствовать список контактов, написаный на уроке. При клике на контакт, он должен разворачиваться (увеличиваться в высоте) и должна отображаться какая-то дополнительная информация о контакте (например, адрес и email). При повторном клике, информация должна сворачиваться.
0 commit comments