Basico Flashcards
(35 cards)
operador ternario no jsx
<h1> { x == 1? ( <p>caiu no if</p> ): ( <p>caiu no else</p> )} <h1>
props
permite passar dados do componente pai para o filho.
Ficam disponivel no componente filho a partir do objeto prop.nomeDoCampo
passando props para o componente
<Componente nomeDaProps="valorDaProps" />
recebendo a props no componente
const NomeComponente = (props) =>{ return ( <h1>{props.nomeDaProps?</h1> ) } export default NomeComponente;
maneira moderna de receber um props no componente, fazendo destructing
cont NomeComponente = ({nomeDaProps1,nomeDaProps2}) =>{ return ( <h1>{nomeDaProps1}</h1> <h1>{nomeDaProps2}</h1> ) } export default NomeComponente;
Loop em listas no jsx
~~~
usa-se o maps.
listaArray.maps(x =>(//como vou imprimir jsx aqui precisa ser parentesis
<componentes nome={x.nome} />
))
```
fragments
Interessantes quando precisamos ter mais de um elemento pai; Ele é uma tag vazia <></>
Enviando o Children Prop
Recurso utilizado para qundo um componente precisar ter JSX dentro dele; <componente> <h1>Children Prop</h1> </componente>
Recendo o Children Prop
const NomeComponente = ({children}) =>{ return ( {children} ) }
Enviar funções como props
<Componente nomeFuncao={funcao} />
receber funcao como props e executar
const Componente = ({funcao}) =>{ return ( <button onClick={funcao} >Clique</button> ) }
Elevacao de state ou State lift
Enviar dados do filho para o pai através de uma função passada como props para o filho. E essa funcao no filho recebe um valor e altera o estado de alguma variavel do componenente pai
Hooks
funcoes do react que dão acessos ao estado da aplicação e outros dispositivos do react. Começam com "use" exemplo: useState(), utilizado para criar estados
Hooks
Os Hooks são mais restritivos do que outras funções. Você só pode chamar Hooks no topo de seus componentes
hook useState
gerenciamento de estado da aplicacao
hook useState
const [nome,setNome] = useState("Herlessi"); setNome("Herlessi Nogueira"); console.log(nome);//imprime herlessi nogueira
previous State
estaudar mais sobre isso
css de componente
não é scoped, ou seja, ele vaza para outros componentes, o ideal é criar classes de css com o nome do componente como prefixo
css de componente
Por padrão criamos um arquivo .css como o mesmo nome do componente e o importamos no componente
css inline por meio de um objeto
<div style={{color:red,background-color:blue}}>texto</div>
css inline dinamico
~~~
<div style={n>1?{color:red}:{color:blue}}}>texto</div>```
classes de css dinamicas
<div className={n>1?"classe1":"classe2"}>texto</div>
Css Modules (Css Scoped)
Nome do arquivo .css deve ser NomeComponente.module.css
Para usar o css modules(CSS Scoped)
importa-se como objeto e aplica-se como objeto; import Style from './componente.module.css' <div className={Style.nomeClasse}>texto</div> ele gera um id maluco para a classe, para ser unico
