The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2022-04-12
Desenvolvimento de software

Começar a utilizar a estrutura Remix

The Codest

Reda Salmi

Programador React

Remix é um framework web full-stack focado em fundamentos web e UX moderna.

Sim, este é mais um JS mas mantenha-se por mais algum tempo, uma vez que esta estrutura é criada por Michael Jackson e Ryan Florence os espertalhões por detrás Router React. Espero que isto tenha chamado a vossa atenção, por isso vamos ver o que há de bom no Estrutura de remixagem.

quadradinhos JS com cérebro

Dados técnicos

O Remix é uma estrutura do lado do servidor construída sobre o API de busca na Web e Router React, cada itinerário no remix tem três exportações principais a carregador, um ação e uma predefinição componente exportação. A carregador será chamada no servidor antes da renderização para fornecer dados à rota, a função ação é responsável pela mutação de dados, a exportação predefinida é o componente que será processado nesse percurso. A função carregador e ação são executadas apenas do lado do servidor e devem devolver um Resposta objeto, o padrão A exportação é executada tanto no lado do servidor como no lado do cliente.

Começar a trabalhar

Para inicializar um novo Remix projeto:

npx create-remix@latest

IMPORTANTE: Escolha "Just the basics" e, em seguida, "Remix App Server" quando solicitado

cd [o nome que deu ao projeto]
npm run dev
```

Abrir http://localhost:3000. o criar-remixar irá obter um modelo inicial com a seguinte estrutura:

arquitetura da pasta remix - scr
  • O aplicação conterá todas as rotas da sua aplicação e código.
  • O app/entry.client.jsx é o primeiro pedaço de código que é executado no navegador e é usado para hidratar a React componentes.
  • O app/entry.server.jsx é o primeiro pedaço de código que é executado quando um pedido chega ao servidor, este ficheiro transforma a nossa aplicação React numa string/stream e envia-a como resposta ao cliente.
  • O app/root.jsx é para onde vai o componente de raiz.
  • O app/routes/ é para onde vão todos os seus módulos de rota, o remix usa um roteamento baseado no sistema de ficheiros.
  • O público é onde ficam os seus activos estáticos (imagens/fontes/etc).
  • O remix.config.js é onde a configuração de remixagem pode ser definida.

Menos conversa, mostre-me o código

Vamos verificar um login.jsx exemplo de rota dentro de uma aplicação Remix:

import { redirect, json, Form, useActionData, useTransition } from 'remix';
import { isLoggedIn, verifyLogin } from '../auth';

export const loader = async ({ request }) => {
if (await isLoggedIn(request)) {
return redirect('/dashboard');
}

return json({ success: true });
};

export const action = async ({ request }) => {
const formData = await request.formData();
const values = {
email: formData.get('email') ?? '',
password: formData.get('password') ?? '',
};

const errors = await verifyLogin(values);
if (errors) {
return json({ errors }, { status: 400 });
}

return redirect('/dashboard');
};

export default function LoginRoute() {
const actionData = useActionData();
const transition = useTransition();
const isSubmitting = transition.state === 'submitting';

return (

Email

{actionData?.errors?.email &&
{actionData.errors.email}
}

  <div>
    <label htmlFor="password">Password</label>
    <input id="password" name="password" type="password" />
    {actionData?.errors?.password && (
      <div>{actionData.errors.password}</div>
    )}
  </div>

  <div>
    <button type="submit" disabled={isSubmitting}>
      {`Login ${isSubmitting ? '...' : ''}`}
    </button>
  </div>
</Form>

);
}
```

A primeira coisa que acontece aqui é o carregador função que verifica se o utilizador já tem sessão iniciada com o isLoggedIn função e irá redirecionar ele para o /painel de controlo caso contrário, devolverá simplesmente um { sucesso: verdadeiro } e, em seguida, a página de login é renderizada.

O LoginRoute renderiza um formulário com entradas de e-mail e senha e um botão de envio, como você pode ver, não há Estado variáveis nem um onSubmit no nosso componente, é porque no remix cada rota pode exportar um evento ação e quando um formulário é submetido com um POST a ação será chamada e tratará esse evento.

Quando o formulário é submetido, o ação obterá a função
Dados do formulário do Pedido objeto const formData = await request.formData(), então estamos a construir o valores com um e-mail e propriedades de palavra-passe, o objeto formData.get('email') irá procurar o primeiro campo correspondente dentro do nosso formulário com um name="email" e devolver o seu valor. Estamos a verificar se as credenciais estão corretas com a propriedade verificarLogin aqui pode utilizar qualquer uma das suas bibliotecas de validação de esquemas JS favoritas e fazer um buscar para o seu backend personalizado para verificar se os dados de início de sessão estão corretos; em caso afirmativo, nós redirecionar o utilizador para o /painel de controlo caso contrário, devolvemos uma rota json com o objeto errors e uma resposta Código de estado HTTP 400, o useActionData O hook devolverá este objeto errors se houver algum e, condicionalmente, apresentará a mensagem de erro como em {actionData?.errors?.email &amp;&amp; <div>{actionData.errors.email}</div>}.

O useTransition o gancho diz nós tudo sobre o estado de transição da página, com o isSubmitting variável estamos a verificar quando está a ocorrer uma submissão, se houver alguma, iremos desativar o botão enviar e mostrar Login.... em vez de Iniciar sessãoSe o utilizador não quiser ver o ecrã de carregamento, pode também mostrar-lhe um spinner de carregamento ou qualquer outra indicação.

O json é apenas um atalho para criar a função aplicação/json objectos de resposta. Os useLoaderData hook devolve os dados analisados JSON da sua rota carregador, o useActionData devolve o itinerário ação dados analisados.

Adequado para SEO

Cada rota também pode exportar um meta responsável pela definição de meta tags para o seu documento Html, desta forma pode definir uma título e um descrição para cada rota e adicionar qualquer Open Graph ou outras meta tags que pretenda.

export const meta = () => {
const title = 'A minha página espetacular';
const description = 'Página espetacular';

return {
charset: 'utf-8',
title,
description,
palavras-chave: 'Remix,Awesome',
'twitter:image': 'https://awesome-page.com/awesome.png',
'twitter:card': 'summarylargeimage',
'twitter:creator': '@awesome',
'twitter:site': '@awesome',
'twitter:title': título,
'twitter:description': descrição,
};
};

export default function AwesomeRoute() {
return

Rota incrível

;
}
```

Ligações úteis

Acabámos de abordar a ponta do icebergue sobre o Remix, há muito mais para saber, aqui estão algumas ligações úteis:

  • Documentação
  • Github
  • Pasta de exemplos
  • Lista de reprodução do YouTube
  • Servidor Discord

Resumo

O que é fantástico no Remix é que, ao melhorar com ele, ficará melhor nos fundamentos da Web. Como viu, muitos dos links deste artigo apontam para o Documentos do MozillaO Remix está focado nos fundamentos da Web e utiliza APIs da Web, como os objectos Response e Request, para proporcionar aos utilizadores uma excelente experiência de utilizador, podendo ainda utilizar todas as suas técnicas habituais e bibliotecas favoritas.

Neste artigo, não falámos de todas as excelentes funcionalidades oferecidas pelo Remix, como Rotas aninhadas, Limites de erro, Pilhas de remixes mas, ainda assim, este artigo deve dar-lhe uma boa ideia da filosofia subjacente ao Remix.

Artigos relacionados

E-commerce

Dilemas da cibersegurança: Fugas de dados

A corrida pré-natalícia está ao rubro. Em busca de presentes para os seus entes queridos, as pessoas estão cada vez mais dispostas a "invadir" as lojas em linha

The Codest
Jakub Jakubowicz CTO e cofundador
Desenvolvimento de software

Prós e contras do React

Porque é que vale a pena utilizar o React? Que vantagens tem esta biblioteca JavaScript? Para saber as respostas, mergulhe neste artigo e descubra os benefícios reais da utilização do React.

The Codest
Cezary Goralski Software Engineer
Desenvolvimento de software

Chaves React, sim! Precisa delas, mas porquê exatamente?

Transformar um array em uma lista de elementos com o React é bastante simples, basicamente tudo o que você precisa fazer é mapear esse array e retornar o elemento adequado para cada...

Przemysław Adamczyk
Desenvolvimento de software

Guia rápido sobre como executar contêineres a partir de testes

Saiba como executar testes de formulários de contentores no nosso artigo relacionado com Java, onde o nosso programador java sénior mostra toda a magia.

Bartlomiej Kuczyński

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

    • Office 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

    pt_PTPortuguese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek cs_CZCzech pt_PTPortuguese