41 lines
2.2 KiB
Markdown
41 lines
2.2 KiB
Markdown
![]() |
---
|
|||
|
title: Write a React Component from Scratch
|
|||
|
localeTitle: Напишите компонент реакции с нуля
|
|||
|
---
|
|||
|
## Напишите компонент реакции с нуля
|
|||
|
|
|||
|
В этой задаче мы хотим создать компонент реагирования `class` (компоненты React могут быть компонентами `class` или `function` компонентами). Все наши компоненты класса будут расширением `React.Component` . Например, мы можем начать составлять компонент `FirstComponent` с:
|
|||
|
|
|||
|
```javascript
|
|||
|
class FirstComponent extends React.Component {
|
|||
|
|
|||
|
};
|
|||
|
```
|
|||
|
|
|||
|
Мы также должны обязательно определить `constructor` для нашего нового класса. Это лучшая практика для вызова любого компонента `constructor` с `super` и передать `props` для обоих. `super` вытягивает `constructor` родительского класса нашего компонента (в данном случае `React.Component` ). Теперь код для нашего компонента выглядит следующим образом:
|
|||
|
|
|||
|
```javascript
|
|||
|
class FirstComponent extends React.Component {
|
|||
|
constructor(props) {
|
|||
|
super(props);
|
|||
|
}
|
|||
|
|
|||
|
};
|
|||
|
```
|
|||
|
|
|||
|
Теперь все, что осталось сделать, это определить, что наш компонент будет `render` ! Мы делаем это, вызывая метод `render` компонента и возвращаем наш код JSX:
|
|||
|
|
|||
|
```javascript
|
|||
|
class FirstComponent extends React.Component {
|
|||
|
constructor(props) {
|
|||
|
super(props);
|
|||
|
}
|
|||
|
render() {
|
|||
|
return (
|
|||
|
// The JSX code you put here is what your component will render
|
|||
|
);
|
|||
|
}
|
|||
|
};
|
|||
|
```
|
|||
|
|
|||
|
Как только ваш код JSX находится там, ваш компонент завершен! Если вы хотите более подробный учебник по компонентам React, Samer Buna [написал отличную статью](https://medium.freecodecamp.org/how-to-write-your-first-react-js-component-d728d759cabc) .
|