Skip to content

Latest commit

 

History

History
59 lines (46 loc) · 1.85 KB

Tornar-o-comportamento-dinamico.md

File metadata and controls

59 lines (46 loc) · 1.85 KB

Tornar o comportamento dinâmico

Ok, já sabemos como adicionar comportamento ao nosso botão, mas se o comportamento está "hardcoded", isso significa que este botão não é reutilizável ... 🤔

... e a ideia do React é tornar os componentes reutilizáveis, por isso como é que nós garantimos que é este o caso do Button?

A resposta é adicionando comportamento dinâmico, ou seja, o botão não tem o seu comportamento definido internamente, mas é-lhe passado pelo componente pai que corresponde ao componente onde este é declarado.

function Botao(props) {
   ...
}

A variável props é um objecto, e como tal, podes referir-te a cada uma das suas propriedades desta forma: props.<nome-da-propriedade>.

Ou seja, em vez de termos:

<button onClick={() => alert("Alguém clicou no botão!")}>Click me</button>

... passamos a ter:

<button onClick={props.onClickHandler}>{props.title}</button>

E depois o componente "pai" - o App.js - tem que passar as propriedades ao "filho" da seguinte forma:

import logo from './logo.svg';
import './App.css';
import Botao from './Button';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <Botao title="Click me" onClickHandler={() => alert("Alguém clicou no botão")}/>
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Inês Martins
        </a>
      </header>
    </div>
  );
}

export default App;