Pular para o conteúdo

Receitas ​

Tradução automática

Esta página foi traduzida automaticamente do inglês e ainda não foi revisada por um falante nativo; correções são bem-vindas no GitHub. Se algo não bater, vale o original em inglês.

Receitas curtas, uma tarefa cada. Cada receita é uma pequena aplicação em examples/cookbook/ com a sua própria suíte quantum test: o código da página é importado dos arquivos testados, e o que ela mostra como resultado saiu de rodá-la.

Básico ​

  • Uma primeira página, e uma segunda — Cada arquivo em components/ é uma página na sua própria URL; uma URL sem arquivo é 404.
  • Variáveis e expressões — q:set guarda um valor, as chaves calculam com ele, e default preenche o que falta.
  • Loops — q:loop sobre uma lista (com a posição), um intervalo de números e um texto separado por vírgulas.
  • Condicionais — q:if, q:elseif e q:else, com condições que são expressões.
  • Funções — Uma q:function com parâmetros tipados e verificados, chamada de um q:set e do HTML.
  • Uma página por URL — components/product/[id].q responde em /product/1, /product/2...; o segmento é uma variável.
  • Ler a query string — query.name lê o ?name= do endereço; default cobre um que falta; urlencode monta um link.
  • Componentes reutilizáveis — Um componente com props e um slot, importado de uma pasta _ que nunca é servida.

Telas ​

  • Um layout que cabe na tela — ui:hbox lado a lado numa tela larga, empilhado numa estreita, com grow, width e hide-below.
  • Uma tabela editada no lugar — ui:table edit= transforma cada célula num pequeno formulário verificado contra o esquema da tabela; nenhuma ação a escrever.
  • Abas — ui:tabpanel com uma ui:tab por seção de uma página.
  • Cards — ui:card com cabeçalho, corpo e rodapé, num ui:grid; ou um card só com título.
  • Todo tipo de campo — ui:form com rótulos ui:formitem: texto, número, uma seleção com opções, um switch, radios e um campo de várias linhas.
  • A mesma página num terminal — Uma página ui:*, servida ao navegador pelo quantum start e desenhada num terminal pelo quantum console.

Testando a aplicação ​

Arquivos e e-mail ​

Login e permissões ​

  • Login com senha em hash — Confira uma senha contra o seu hash bcrypt com verifyPassword, abra a sessão e mantenha uma página só para quem entrou.
  • Cadastro com o hash da senha — Crie uma conta com hashPassword, para o banco nunca guardar a senha, com regras em cada campo.
  • Uma página só para um papel — require_role reserva uma página aos administradores: um membro recebe 403, e quem não entrou é mandado para o login.
  • Uma guarda que redireciona — Um q:if no topo com q:redirect protege uma página e cada ação dela: um envio sem sessão não grava nada.
  • Sair — Uma página de logout que limpa a sessão e redireciona; as páginas protegidas se fecham de novo.

Formulários e ações ​

  • Cada erro no seu campo — Escreva as regras uma vez no q:param da ação; o formulário as lê e mostra cada recusa ao lado do seu campo.
  • Um formulário recusado guarda o que foi digitado — Depois de uma recusa, o formulário volta preenchido com os valores enviados, uma vez, para ninguém digitar uma mensagem longa duas vezes.
  • Redirecionar e dizer o que aconteceu — Termine uma ação com q:redirect e uma mensagem flash; q:flash para um aviso; a mensagem aparece uma vez na próxima página.
  • Vários formulários numa página — Cada formulário e botão envia o nome da sua ação; um nome que a página não tem responde 400.
  • Um formulário a partir da tabela — q:action table= pega os seus parâmetros do esquema; um ui:form sem campos desenha um campo por coluna.
  • Editar uma linha — Uma página por linha com [id].q, um formulário aberto com os valores da linha e as regras da tabela ao salvar.
  • Confirmar antes de apagar — Uma página que pergunta primeiro, aberta por um link, e o apagar como POST pelo botão dela; sem JavaScript.
  • Números e datas — type=integer, decimal e date no q:param: a ação recebe números verificados e datas de verdade, com min e max.
  • Uma escolha numa lista — enum no q:param dá ao ui:select e ao ui:radio as suas opções e recusa qualquer outra; uma caixa é um boolean.

Dados e SQL ​

IA ​

Licença MIT · Feito com VitePress