đź“Ś Requisitos:
-
A lista de tecnologias deve ser um array onde no HTML você irá fazer um map para listar
-
Ao clicar no botão de linguagem o texto de apresentação "Olá meu nome...." muda para a linguagem selecionada
-
O botĂŁo de linguagem deve ser um componente onde vocĂŞ passará 3 propriedades: TĂtulo, Ăcone e o click dele
-
Nesse projeto eu utilizei React com Styled Components
1Âş NODE
2Âş YARN OU NPM
3Âş PowerShell
- npm create vite@latest
- Vai fazer uma pergunda e digitamos y
- Vai pedir o nome do projeto
- Vai pedir o Framework que será utilizado
- Por fim vai pedir a variant que no meu caso Ă© o TypeScript
Após o procedimento acima, basta selecionarmos a pasta aonde o arquivo foi criado utilizando o comando cd + o nome da pasta. Após isso digitamos npm install e logo em seguida abrimos nosso Visual code e digitamos no terminal o comando npm run dev que irá abrir o browser de compilação no Local: http://127.0.0.1:5173/
Em nosso terminal do VsCode digitamos o comando a seguir:
npm install --save styled-components.
Essa biblioteca nos permite trabalhar com o CSS dentro do React com TypeScript, mas para isso temos que importá-la para o projeto e utilizá-la em nossos arquivos de style.ts de cada pasta criada.Para cada tag que eu criei em meu arquivo index.tsx eu dei um nome sugestivo e coloquei dentro do import para ser usado e estilizado no styed component do arquivo ts aonde criei e exportei uma const como o nome importado(Sugestivo) e atráves do styled. eu pude dizer se era um botão, uma div ou uma h1 e por ai vai. Vale a pena ressaltar que para o estilo global tivemos que importar o createGlobalStyle e criar uma constante e exportá-la para ser utilizado em todo o projeto (export const GlobalStyle = createGlobalStyle). Nesse projeto criei três pastas e cada uma ficou responsável por uma funcionalidade e todas possuem o index.tsx e um style.ts :
-
Uma com o nome componente e sua subpasta chamada botĂŁo,
-
Outra pasta criada foi a Header,
-
E a outra foi a Pages com uma subpasta chamada home.
No componente botão fiz o uso do useState a qual foi importado e iniciei ele com a escrita principal "Olá meu nome...." a qual seria mudada segundo os botões criados na imagem abaixo que condiz com 3 funções criada nessa pasta a qual cada uma muda o estado principal da state para a linguagem selecionada.Fiz também o uso do props, aonde no app.tsx coloquei as informações referente a linguagem dos botões e através da função do Botão coloquei como parâmetro o comando props para conseguir usar as informações criadas no componente do App.tsx. Exemplo:
App.tsx
Pasta Botao export function Botao(props)
{props.pt} => Através do parâmetro consigo associar a propriedade ao compontent botão, ou seja, cada botão com sua escrita particular.
A pasta Header ficou responsável pelo cabeçalho do projeto e a pasta Pages responsável pelas páginas do projeto. Dentro da página Home no arquivo index.tsx, fiz trĂŞs arrays, uma para cada coluna de tecnologia proposta no enunciado, e utilizei para cada array uma const coluna aonde foi possĂvel fazer o map desses arrays e apartir dai chamei para dentro do meu codigo html da pasta Home. Exemplo:
const lista1 = ["JavaScript", "React", "Vue Js", "Tailwind CSS"]; const coluna1 = lista1.map(
(a) => <ul><li>{a}</li></ul>
)
<Coluna1>{coluna1}</Coluna1>
<Coluna2>{coluna2}</Coluna2>
<Coluna3>{coluna3}</Coluna3>
Todas as páginas criadas foram exportadas para ser importadas em nosso arquivo App.tsx, que praticamente integra todas elas e esse arquivo App.tsx é exportado para main.tsx.
import { Header } from './Header/index'
function App() {
return (
<>
<Header />
<Home />
<Botao />
<GlobalStyle />
</>
) }
export default App