Mudanças entre as edições de "Componentes React.js"

De Aulas
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
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 99: Linha 100:
 
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';
+
 
import ReactDOM from 'react-dom';
+
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 React.Component {
+
class Car extends Component {
  render() {
+
    render() {
    return <h2>Hi, I am a Car!</h2>;
+
        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';
  
<syntaxhighlight lang=javascript>
+
function App() {
import React from 'react';
+
  return (
import ReactDOM from 'react-dom';
+
    <div className="App">
import Car from './App.js';
+
      <h1><Car /></h1>
 +
      <button><Car /></button>
 +
    </div>
 +
  );
 +
}
  
ReactDOM.render(<Car />, document.getElementById('root'));
+
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;