# Resumo playlist reactjs **NOME** KEVIN RIBEIRO DE ANDRADE **NUMERO** 27 **TURMA** INFOA ## TEXT RESUMO criando projeto de react- baixar o visual code, instalar o nodejs, instalar o npx no seu terminal, escolher uma pasta onde ficara seus projetos. instalar as seguintes extensões: vscode styled-components e prettie. comandos: npm create-react-app(cria seu projeto em react) npm start- mostra como está o resultado do projeto no navegador padrão. vc fará um open folder na pasta que vscode abriu. todo html fica apenas em uma index.html dentro da pasta public. a linguagem usada no react é js e jsx(jsx é como um html só que mais rigoroso). nos codigos html vc tem que colocar clasName ao invés de class. pra usar o style nas divs tem que colocar como se fosse json. todas as tags tem que ser fechadas. a gente não o link pra buscar arquivos, transformamos os codigos em funções e exportamos e importamos. pra colocar uma variavel do jsx dentro de uma tag é necessario que a coloque como chave. o component pode guardar informações dentro dele, os components tem estado e os components podem mudar de estado. elas muudam de estado quando vc altera o codigo delas é interessante colocar a pasta assets e pages na pasta public(vc pode criar uma dentro do source e uma dentro da public). dentro da src tbm deve ser criada uma pasta chamada components. pra usar rotas no seu site para navegar entre uma pagina ou outra é necessario dar npm i react-router-dom no seu terminal. depois vc importa: import { BrowserRouter, Switch, Route } from 'react-router-dom'; então vc usa as tags: ReactDOM.render( <React.StrictMode> <BrowserRouter> <Switch> <Route path="/" exact={true} component={Home}/> <Route path="/contatos" component={Contato}/> </Switch> </BrowserRouter> </React.StrictMode>, document.getElementById('root') ); isso de home e contatos variam de acordo com o seu site. para usar o link das rotas: import { Link } from "react-router-dom"; codigo: <Link style={{color: "black"}} to = "/"> volte para a pagina inicial.</Link> na pasta public é onde fica tudo que será acesivel pra o site, e na SRC o cdg fonte. há duas dormas de usar css pra estilizar o site, importando o arquvo css ou instalando e usando styled-components. no import da imagem no bacjkgriund-image pode dar problema caso esteja com a imagem na pasta SRC. não se pode colocar o msm nome de classe de css no react pq se não as duas vão interferir uma na outra. no styled components vc coloca o css dentro de uma variavel, e exporta ela assim ela será como uma tag que terá varias estilizações e ele pode ser reutilizavel. RENDERIZAÇAO estatica- o componeete não irá exibir nada além doq esta lá. renderização por variavel = chama uma variavwel dentro de uma função. renderização por componente - importa o componente e o exib dentro de outro. renderização condicional - renderiza através de valores bool e operadores logicos. renderização por repetição = usar array para exibuição. VARIAVEL DE ESTADO muda o seu valor constantemente, para exibir datas é necessario uma conversão para string. props props são uma forma de comunicação entre componentes, eles são colocados como parametro na função. o mapeamento no react é frito por referÊncia. eventos são funções que são executadas ao atingirem x condições. paramrtro entre paginas Você pode criar uma variavel que controlará a navegação do seu site, usando useHistory(). vc pode coloacar essa variavel dentro de um button, vc pode enviar informções junto com essse button e recebelo através de um props em um outro componenete. também é possivel fazer isso via TAG link. props em styled components Dentro das crases da variavel sstyled vc usará o props em algum lugar lá dentro e assim poderá adicionar no seu componente. ## JSX ```jsx= import { useState } from "react"; import { Link } from "react-router-dom"; import Contato from "../contact"; function Home() { let mCon = false; if (mCon === true) return <Contato /> let tet = ["oiio", "hdsijhakl", "hahfdklahf", "kahsjdklsahjjkld"]; const [br, setBr] = useState(1) return ( <div> <h1>bolololo</h1> <Link to = "/contacts">vajaskdjakl</Link> {tet.map(item => <div> {item} </div>)} <div>{br}</div> </div> ) } export default Hom import { Link } from "react-router-dom"; function Notfound () { return ( <div> <div> <h1>Qual foi amigão? tá tentando entrar onde fdp?kkkkkkk </h1> </div> <div> <img style={{height: "100vh", width: "100%"}} src= "/assets/images/Ending-Aho-Girl.png" /> </div> <Link style={{color: "black"}} to = "/"> volte para a pagina inicial.</Link> </div> ) } export default Notfound; import { useState } from 'react'; import './App.css'; import Count from './Counter'; import Contato from './pages/contact'; function App() { const [counter, setcounter] = useState(0); const incrementar = ( ) => setcounter(counter + 1); const reset = () => setcounter(0); return ( <div className="App"> <Count value={counter} onreset = {reset}/> <button onClick={incrementar}> oiiiiiii</button> </div> ) } export default App; import "./index.css"; function Contato () { return ( <div className="b"> <button> Entre em contato conosco, fdp </button> <h2>asjsfdjhalfhaslkjh</h2> </div> ) } export default Contato; function Count (props) { const reset = props.onreset; return ( <div style={{cursor: "pointer"}} onClick={reset} > {props.value} </div> ) } export default Count; ```