Komponenty są jak funkcje, które zwracają elementy HTML.
Komponenty React
Komponenty są niezależnymi i wielokrotnego użytku bitami kodu.Służą do tego samego celu co funkcje JavaScript, ale działają w izolacji i zwracają HTML poprzez funkcję render().
Komponenty występują w dwóch typach, komponenty klasy i komponenty funkcji, w tym tutorialu skupimy się na komponentach klasy.
Tworzenie komponentu klasy
Podczas tworzenia komponentu React, nazwa komponentu musi zaczynać się od dużej litery.
Komponent musi zawierać deklarację extends React.Component, ta deklaracja tworzy dziedziczenie do React.Component, i daje Twojemu komponentowi dostęp do funkcji React.Component.
Komponent wymaga również metody render(), ta metoda zwraca HTML.
Przykład
Utwórz komponent klasy o nazwie Car
class Car extends React.Component { render() { return <h2>Hi, I am a Car!</h2>; }}
Teraz Twoja aplikacja React ma komponent o nazwie Samochód, który zwraca element <h2>.
Aby użyć tego komponentu w swojej aplikacji, użyj podobnej składni jak normalny HTML:<Car />
Przykład
Wyświetl komponent Car w elemencie „root”:
ReactDOM.render(<Car />, document.getElementById('root'));
Run Example”
Utwórz komponent Function
Tutaj znajduje się ten sam przykład co powyżej, ale utworzony przy użyciu komponentu Function zamiast.
Komponent funkcyjny również zwraca HTML i zachowuje się podobnie jak komponent klasowy, ale komponenty klasowe mają pewne dodatki i będą preferowane w tym poradniku.
Przykład
Utwórz komponent Function o nazwie Car
function Car() { return <h2>Hi, I am also a Car!</h2>;}
Po raz kolejny twoja aplikacja React ma komponent Car.
Odwołaj się do komponentu Car jak do normalnego HTML (z wyjątkiem React, komponenty muszą zaczynać się od dużej litery):
Przykład
Wyświetl komponent Car w elemencie „root”:
ReactDOM.render(<Car />, document.getElementById('root'));
Run Example”
Konstruktor komponentu
Jeśli w twoim komponencie znajduje się funkcja , funkcja ta zostanie wywołana, gdy komponent zostanie zainicjowany.constructor()
Funkcja konstruktora to miejsce, w którym inicjujesz właściwości komponentu.
W React właściwości komponentu powinny być przechowywane w obiekcie o nazwiestate.
Więcej o state dowiesz się w dalszej części tego poradnika.
Funkcja konstruktora jest również miejscem, w którym honorujesz dziedziczenie komponentu nadrzędnego poprzez dołączenie instrukcji super(), która wykonuje funkcję konstruktora komponentu nadrzędnego, a Twój komponent ma dostęp do wszystkich funkcji komponentu nadrzędnego (React.Component).
Przykład
Utwórz funkcję konstruktora w komponencie Car i dodaj właściwość color:
class Car extends React.Component { constructor() { super(); this.state = {color: "red"}; } render() { return <h2>I am a Car!</h2>; }}
Użyj właściwości color w funkcji render():
Przykład
class Car extends React.Component { constructor() { super(); this.state = {color: "red"}; } render() { return <h2>I am a {this.state.color} Car!</h2>; }}
Przykład renderowania”
Props
Innym sposobem obsługi właściwości komponentów jest użycie props.
Propy są jak argumenty funkcji, a Ty przesyłasz je do komponentu jako atrybuty.
Więcej o props dowiesz się w następnym rozdziale.
Przykład
Użyj atrybutu, aby przekazać kolor do komponentu Car, i użyj go w funkcji render():
class Car extends React.Component { render() { return <h2>I am a {this.props.color} Car!</h2>; }}ReactDOM.render(<Car color="red"/>, document.getElementById('root'));
Przykład działania”
Komponenty w komponentach
Możemy odwoływać się do komponentów wewnątrz innych komponentów:
Przykład
Użyj komponentu Car wewnątrz komponentu Garage:
class Car extends React.Component { render() { return <h2>I am a Car!</h2>; }}class Garage extends React.Component { render() { return ( <div> <h1>Who lives in my Garage?</h1> <Car /> </div> ); }}ReactDOM.render(<Garage />, document.getElementById('root'));
Przykład działania”
Komponenty w plikach
React polega na ponownym wykorzystaniu kodu, a mądrym rozwiązaniem może być umieszczenie niektórych komponentów w oddzielnych plikach.
Aby to zrobić, utwórz nowy plik z rozszerzeniem .js i umieść w nim kod:
Zauważ, że plik musi zaczynać się od importu Reacta (tak jak poprzednio) i musi kończyć się stwierdzeniem export default Car;.
Przykład
To jest nowy plik, nazwaliśmy go „App.js”:
import React from 'react';import ReactDOM from 'react-dom';class Car extends React.Component { render() { return <h2>Hi, I am a Car!</h2>; }}export default Car;
Aby móc korzystać z komponentu Car, należy zaimportować ten plik w swojej aplikacji.
Przykład
Teraz importujemy plik „App.js” w aplikacji i możemy korzystać z komponentu Car, tak jakby został on utworzony tutaj.
import React from 'react';import ReactDOM from 'react-dom';import Car from './App.js';ReactDOM.render(<Car />, document.getElementById('root'));
Przykład działania”