A equipe recebeu uma demanda para desenvolver um front-end para uma API RESTful. No cenário proposto, a interface deve exibir posts de um blog e, ao clicar em um post, os comentários associados.
- Interface deve exibir posts de um blog.
- Clicar em um post, deve exibir os comentários associados.
Você ficou responsável pela demanda e sua tarefa é projetar uma interface para atender as necessidades. Os seguintes serviços estão disponíveis:
- Listagem de posts: https://jsonplaceholder.typicode.com/posts
- Listagem de comentários de um post: o https://jsonplaceholder.typicode.com/posts/[ID]/comments
- Listagem de usuários: o https://jsonplaceholder.typicode.com/users
- Detalhes de um usuário: o https://jsonplaceholder.typicode.com/users/[ID]
- URL Repositório: Repositorio Projeto
- Url Aplicação: Resultado Aplicação
- Marcação HTML semântica
- CSS(Flexbox, Grid, Bem Metodolody CSS Architecture)
- Mobile-first workflow, Responsive Web Design(RWD)
- Acessibilidade Web com arias atributos, é roles
- Typescript
- FETCH API Web
- React JS library
- Hooks React
- React router-dom-library
- NPM
- Ferramenta de construção Vite - Vite
- Normalize CSS - Normalize
- Font Awesome Icons - Font Awesome - Icons
Neste projeto usamos o kit de ferramentas Tooling vite com react é typescript
npm create vite@latest
depois so seguir as instruções e escolher as opções de template fornecidas, de acordo com a necessidade do projeto.
O vite não instala as dependencias somente as especifica, para instalar todas depencias e instalar a pasta node-modules para executar o projeto
npm install
Apos instalar dependencias iniciais podemos iniciar nosso projeto e começar a trabalhar, iniciamos executando o servidor de desenvolvimento, rodar o projeto no modo de desenvolvimento
npm run dev
fazendo o build para produção
npm run build
instalar e configurar, apos executar o comando, so seguir as intruções, e escolher as opções que encaixam de acordo com as ferramentas que serão necessarias para seu projeto.
npm init @eslint/config
eslint-plugin-jsx-a11y
Verificador AST estático para regras de acessibilidade em elementos JSX.
npm install eslint-plugin-jsx-a11y --save-dev
Uso
Você também pode habilitar todas as regras recomendadas ou estritas de uma só vez. Adicionar plugin:jsx-a11y/recommended
ou plugin:jsx-a11y/strict
em extends:
{
"extends": ["plugin:jsx-a11y/recommended"]
}
instale o Prettier localmente
npm install --save-dev --save-exact prettier
Em seguida, crie um arquivo de configuração vazio para permitir que os editores e outras ferramentas saibam que você está usando o Prettier:
echo {}> .prettierrc.json
Desativa todas as regras desnecessárias ou que possam entrar em conflito com o Prettier.
npm install --save-dev eslint-config-prettier
Em seguida, adicione "prettier"
à matriz "extends" em seu .eslintrc.*
arquivo. Certifique-se de colocá-lo por último, para que tenha a chance de substituir outras configurações.
{
"extends": [
"some-other-config-you-use",
"prettier"
]
}
Deploy e build para produção no GitHub Pages.
Execute os seguintes comandos no seu Terminal
$ git init
$ git add .
$ git commit -m "first commit"
$ git branch -M main
$ git remote add origin http://github.com/username/repo-name.git
$ git push -u origin main
Agora, você poderá ver seu código em seu repositório.
- Vá para o seu
vite.config.js
arquivo. E adicione seu URL base a ele.
export default defineConfig({
plugins: [react()],
base: "/repo-name/" //Aqui e o url base do website
})
- Instalar package GitHub pages
npm install gh-pages --save-dev
- adicionar à
package.json
"homepage": "https://<username>.github.io/<repo>/",
...
"scripts": {
...
"build": "vite build",
"predeploy": "npm run build", //add esse script
"deploy": "gh-pages -d dist", //add esse script
...
- Opcional - Se for uma aplicação SPA - Single Page Apps for GitHub Pages usando react-router-dom
-
Copie o 404.html arquivo para o seu repositório como está.
- Observe que, se você estiver configurando um site do Project Pages e não estiver usando um domínio personalizado (ou seja, o endereço do seu site é username.github.io/repo-name), será necessário definir pathSegmentsToKeep como 1 no 404.html arquivo para manter /repo-name o caminho após o redirecionamento. Se você estiver usando o React Router, precisará dizer a ele para usar o repo-name como o basename, por exemplo
<BrowserRouter basename="/repo-name" />
-
Copie o script de redirecionamento do
index.html
arquivo e adicione-o ao seuindex.html
arquivo - Observe que o script de redirecionamento deve ser colocado antes do script do aplicativo de página única em seuindex.html
arquivo.
- Por fim execute o comando
npm run deploy