Mudanças entre as edições de "Componentes React.js"
(Criou página com 'Afluentes: Desenvolvimento Front-end, Usabilidade, desenvolvimento web, mobile e jogos = Componentes React = Os componentes react são como funções que retornam el...') |
|||
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | Afluentes: [[Desenvolvimento Front-end]], [[Usabilidade, desenvolvimento web, mobile e jogos]] | + | |
+ | |||
+ | Afluentes: [[Desenvolvimento Front-end II]], [[Usabilidade, desenvolvimento web, mobile e jogos]] | ||
= Componentes React = | = Componentes React = | ||
Linha 5: | Linha 7: | ||
Os componentes react são como funções que retornam elementos HTML. Eles são independentes e reutilizáveis. Temos dois tipos básicos de componentes, os componentes Classes e os componentes Funções. | Os componentes react são como funções que retornam elementos HTML. Eles são independentes e reutilizáveis. Temos dois tipos básicos de componentes, os componentes Classes e os componentes Funções. | ||
− | + | = Componente Classe = | |
Para usar um componente, precisamos herdar a classe Component de React <code>React.Component</code> e sobrescrever o método <code>render()</code> que retorna um HTML. | Para usar um componente, precisamos herdar a classe Component de React <code>React.Component</code> e sobrescrever o método <code>render()</code> que retorna um HTML. | ||
Linha 23: | Linha 25: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | = Componente Função = | |
As funções componentes também retornam html. Por exemplo, temos uma função chamada <code>Car</code> | As funções componentes também retornam html. Por exemplo, temos uma função chamada <code>Car</code> | ||
Linha 41: | Linha 43: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | = Componente Construtor = | |
O componente construtor é uma função componente, mas ela é específica da classe. Ela é usada para inicializar as propriedades dos componentes: | O componente construtor é uma função componente, mas ela é específica da classe. Ela é usada para inicializar as propriedades dos componentes: | ||
Linha 57: | Linha 59: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | = Props = | |
Outra forma de pegar alguns componentes de propriedades é usar o <code>props</code>. Os props são como argumentos de funções que são recuperados dentro do código. | Outra forma de pegar alguns componentes de propriedades é usar o <code>props</code>. Os props são como argumentos de funções que são recuperados dentro do código. | ||
Linha 94: | Linha 96: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | = Arquivos com Componentes = | |
Colocar componentes em arquivos separados é uma boa prática para o reuso de código. Para isso, é necessário criar um arquivo com extensão <code>.js</code>, com o componente criado e no final do arquivo adicionar a linha <code>export default MeuComponente;</code>. | Colocar componentes em arquivos separados é uma boa prática para o reuso de código. Para isso, é necessário criar um arquivo com extensão <code>.js</code>, com o componente criado e no final do arquivo adicionar a linha <code>export default MeuComponente;</code>. | ||
− | <syntaxhighlight lang=javascript> | + | Mas para vermos isso funcionamos, vamos criar uma aplicação react com o npx create-react-app nome_app |
− | import React from 'react | + | |
− | + | Lá na pasta <code>src</code>, crie um arquivo <code>Car.js</code> com o código abaixo: | |
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | import React, { Component } from 'react'; | ||
− | class Car extends | + | class Car extends Component { |
− | + | render() { | |
− | + | return <div>Hi, I am a Car!</div>; | |
− | + | } | |
} | } | ||
export default Car; | export default Car; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | E para usar o componente, usar o import. | + | E para usar o componente, usamos o import no arquivo que vai usar o componente, no nosso caso, o <code>App.js</code>. |
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | import logo from './logo.svg'; | ||
+ | import './App.css'; | ||
+ | import Car from './Car.js'; | ||
− | < | + | function App() { |
− | + | return ( | |
− | + | <div className="App"> | |
− | + | <h1><Car /></h1> | |
+ | <button><Car /></button> | ||
+ | </div> | ||
+ | ); | ||
+ | } | ||
− | + | export default App; | |
</syntaxhighlight> | </syntaxhighlight> |
Edição atual tal como às 19h04min de 19 de setembro de 2024
Afluentes: Desenvolvimento Front-end II, Usabilidade, desenvolvimento web, mobile e jogos
Componentes React
Os componentes react são como funções que retornam elementos HTML. Eles são independentes e reutilizáveis. Temos dois tipos básicos de componentes, os componentes Classes e os componentes Funções.
Componente Classe
Para usar um componente, precisamos herdar a classe Component de React React.Component
e sobrescrever o método render()
que retorna um HTML.
class Car extends React.Component {
render() {
return <h2>Hi, I am a Car!</h2>;
}
}
Para a aplicação reconhecer o componente chamado Car
criado no código acima, usamos uma sintaxe tipo HTML: <Car />
. Por exemplo:
ReactDOM.render(<Car />, document.getElementById('root'));
Componente Função
As funções componentes também retornam html. Por exemplo, temos uma função chamada Car
function Car() {
return <h2>Hi, I am also a Car!</h2>;
}
Os componentes precisam iniciar com uma letra maiúscula.
Para chamar a função, fazemos o mesmo que chamar uma classe:
ReactDOM.render(<Car />, document.getElementById('root'));
Componente Construtor
O componente construtor é uma função componente, mas ela é específica da classe. Ela é usada para inicializar as propriedades dos componentes:
class Car extends React.Component {
constructor() {
super();
this.state = {color: "red"};
}
render() {
return <h2>I am a {this.state.color} Car!</h2>;
}
}
Props
Outra forma de pegar alguns componentes de propriedades é usar o props
. Os props são como argumentos de funções que são recuperados dentro do código.
class Car extends React.Component {
render() {
return <h2>I am a {this.props.color} Car!</h2>;
}
}
ReactDOM.render(<Car color="red"/>, document.getElementById('root'));
Também é possível usar um componente aninhado dentro de outro componente.
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'));
Arquivos com Componentes
Colocar componentes em arquivos separados é uma boa prática para o reuso de código. Para isso, é necessário criar um arquivo com extensão .js
, com o componente criado e no final do arquivo adicionar a linha export default MeuComponente;
.
Mas para vermos isso funcionamos, vamos criar uma aplicação react com o npx create-react-app nome_app
Lá na pasta src
, crie um arquivo Car.js
com o código abaixo:
import React, { Component } from 'react';
class Car extends Component {
render() {
return <div>Hi, I am a Car!</div>;
}
}
export default Car;
E para usar o componente, usamos o import no arquivo que vai usar o componente, no nosso caso, o App.js
.
import logo from './logo.svg';
import './App.css';
import Car from './Car.js';
function App() {
return (
<div className="App">
<h1><Car /></h1>
<button><Car /></button>
</div>
);
}
export default App;