Académique Documents
Professionnel Documents
Culture Documents
O <App /> é uma classe, que extende a classe Component, assim ele é um componente.
Um componente é sempre um código que encapsula três elementos: parte estrutural
(HTML) + estilização (CSS) + parte funcional (JavaScript).
Em suma um componente é sempre um pedaço de estrutura + estilização + lógica ->
(HTML + CSS +JS)
Obrigatoriamente um componente sempre chama um método render() que, basicamente,
retorna um conteúdo JSX (que é o "html").
A "única" diferença da sintaxe JSX pro html é o className ao invés do class pois a
keyword class é uma palavra reservada do JavaScript.
function App() {
return (
<div className="App">
CONTEÚDO JSX
</div>
);
}
Componentes são módulos da Programação Modular, é uma boa prática criar a pasta
components dentro de src e criar os componentes dentro dela
É uma boa prática criar o componente como uma pasta dentro da pasta componentes e,
dentro da pasta do componente criado, cria-se o arquivo index.js que contém o
código do componente
./src/componentes/Header/index.js
Note que agora, podemos estilizar o Header. Daí a importância de ter criado o
Header como uma pasta pois, dentro dela, podemos ter um css (styles.css) que é
específico para o Header.
Note também que algumas estilizações-padrão já vêm com o html. Assim, é importante
criar um arquivo de estilização global para a aplicação, que deve estar na raiz de
src. Este arquivo styles além de remover configurações-padrão de css também define
configurações-padrão da nossa aplicação. Exemplo de configuração do styles.css
(global)
* {
margin: 0;
padding: 0;
outline: 0;
/* Faz com que o padding não aumente o width e o height dos elementos */
box-sizing: border-box;
body {
Temos que importar esse estilo via JavaScript lá no SRC. Então no App.js fazemos
import './styles.css'
header#main-header{
/* Ocupa toda a largura */
width: 100%;
/* Ocupa 60px de altura */
height: 60px;
/* Cor do fundo */
background: #da552f
/* Tamanho da fonte */
font-size: 18px;
/* Fonte em Negrito */
font-weight: bold;
/* Cor da fonte */
color: #fff;
/* DISPLAY: - Referência aqui https://css-
tricks.com/almanac/properties/d/display/ */
/* Permite utilizar flexbox - Referência aqui https://css-
tricks.com/snippets/css/a-guide-to-flexbox/ */
/* This defines a flex container; inline or block depending on the given
value. It enables a flex context for all its direct children. */
display: flex; /* também pode ser inline-flex */
/* Centraliza totalmente o conteúdo do flexitem */
justify-content: center;
align-items: center;
}
Agora temos que importar esse estilo via JavaScript lá no SRC. Então no index.js do
Header fazemos:
import './styles.css';