Eu sou novo (ish) em todos os aplicativos de pilha cheia de javascript e completamente novo no Angular, então esperava que alguém pudesse colocar o registro diretamente para mim aqui.
Por que eu precisaria usar uma estrutura de modelos, como Jade ou Guidão, ao escrever aplicativos do lado do cliente usando o AngularJS.
Devo dizer que também nunca usei nenhuma dessas estruturas de modelos. Portanto, não estou familiarizado com as vantagens completamente. Mas quando olho para o guidão, por exemplo, ele faz muitas das mesmas coisas que faria no Angular, como looping etc.
Tanto quanto posso dizer, faria mais sentido criar os modelos no Angular usando HTML adequado e, em seguida, fazer todo o modelo do lado do cliente, e combinar isso com uma primeira abordagem da API usando o node e o mongo, por exemplo.
O motivo dessa confusão é que muitos dos exemplos que encontro no GitHub fazem uso do Jade, e isso me parece contra-intuitivo.
Por favor, me esclareça e me conserte. Gostaria muito de aprender algumas práticas recomendadas de pessoas que sabem muito mais do que eu.
obrigado
Uso o Jade para gerar modelos consumidos pelo AngularJS porque odeio escrever HTML simples. Parece algo como:
... que eu acho muito mais limpo que o HTML simples.
fonte
ng-inlude
, possivelmente, utilizado em conjunto comng-src
, difere muito do mixins Jades e e inclui?Sinceramente, não entendo por que as pessoas se preocupam com a diferença entre isso:
e isto:
Só que eu acho um pouco mais legível por humanos. Ligeiramente . Não entendo por que as pessoas são tão fervorosas sobre o assunto. É tudo ciclismo. A diferença é insignificante e qualquer programador competente pode facilmente traduzir um para o outro após cinco segundos no Google. Use o que quiser e deixe que todos briguem por nada. Escolha suas batalhas e participe de debates sobre coisas que realmente importam, como reatores atômicos;)
fonte
if
à equação, tudo muda repentinamente. Veja acima sobre "usuários premium".if
s na sua marcação jade, já precisa de algum tipo de mecanismo de modelagem e precisará convertê-lo para qualquerif
sintaxe usada por esse mecanismo. Eu realmente não entendo suas críticas.Portanto, TL; DR, no servidor, você pode usar qualquer linguagem [jade, haml, ...] para gerar apenas uma estrutura html para seu aplicativo, ele não tem nada a ver com angularJS, pois renderizará e funcionará com HTML em tempo de execução no frontend.
Você não precisa usar o Jade no servidor, e eu sugiro que não o use, pois isso confundirá novos desenvolvedores. Nos projetos em que você vê, eles usam o Jade apenas porque é mais limpo e estão acostumados, e se ele usa com o angularJS, o único trabalho é gerar html simples sem lógica.
fonte
A resposta aceita é um pouco unilateral e negligencia o fato de que qualquer configuração do pré-compilador para HTML tem uma grande utilidade para QUALQUER tipo de projeto HTML: Composição e flexibilidade de marcação resultante.
Trabalhando sozinho em um aplicativo angular? Experimente Jade.
O Jade melhora sua capacidade de modularizar HTML, diminui a quantidade de tempo gasto na depuração de HTML e também incentiva a criação de inventários de marcação.
Durante o tempo de design, pode haver uma quantidade enorme de iteração nas partes HTML. Se a saída HTML for baseada em um conjunto de arquivos jade, é fácil para a equipe agir de maneira flexível em relação à alteração de requisitos. Além disso, alterar a marcação via re-composição de jade inclui significativamente mais robusto do que reescrever HTML puro.
Dito isto, reconheço a aversão geral à mistura de angular com jade na fase de produção ou desenvolvimento. A introdução de outro conjunto necessário de conhecimento de sintaxe é uma péssima idéia para a maioria das equipes, e o uso do jade pode ocultar o gerenciamento ineficiente do projeto, abstraindo algum trabalho que seria proibido pelos princípios DRY (por exemplo, ser preguiçoso na preparação da marcação)
fonte
Eu li todas as respostas acima e fiquei um pouco surpreso por ninguém ter mencionado um aspecto que torna o uso do jade sobre a geração de modelos AngularJS uma coisa muito útil.
Como já foi dito, na produção, a diferença de cenários realistas entre a digitação de html bruto e jade é realmente notável, mas a coisa mais importante que nunca devemos esquecer é que às vezes precisamos mudar dinamicamente e reinicializar modelos angularjs .
Para simplificar, às vezes precisamos alterar o html via innerHTML e forçar o AngularJS a recompilar o conteúdo. E esse é exatamente o tipo de tarefa ao gerar tais visualizações via jade, podendo ter benefícios.
Além disso, o AngularJS funciona bem com modelos, cuja estrutura é por definição bem conhecida. Na verdade, acontece que realmente não sabemos a estrutura exata (imagine, digamos, renderizador JSON). O AngularJS será bastante desajeitado aqui (mesmo que esteja criando um aplicativo angular), enquanto o jade fará o trabalho.
fonte
Você pode incluir modelos angulares via Jade.
Para modelos de cache, percebo isso muito menos frágil do que incluir os modelos de escape nos arquivos javascript.
Consulte: https://docs.angularjs.org/api/ng/service/$templateCache
fonte
Jade é definitivamente muito mais próximo do html do que Haml. Portanto, a troca de contexto é realmente muito mínima. No entanto, não está completamente ausente. Pode não ser importante para um desenvolvedor. Mas quando o designer vem e pergunta como fazer com que uma tag aninhada funcione corretamente, você está resolvendo um problema desnecessário criado em primeiro lugar.
O HTML ainda pode ser escrito de maneira muito legível e parciais podem ser usadas para torná-lo mais compreensível. É difícil ler 500 linhas de qualquer coisa - seja Jade ou HTML.
Aqui está um modelo de Jade
E o HTML equivalente
Quando escrito de forma legível, não vejo o HTML muito particularmente desfavorecido, a fim de justificar uma troca. Com certeza, os colchetes angulares são uma desgraça. Mas prefiro tê-los do que ter que lidar com as dúvidas do designer se o indireto que apresentei está quebrando o html. (Pode não. Mas provar que não é um esforço digno)
fonte
Primeiro de tudo, você sempre precisa de algum tipo de modelo do servidor.
A modelagem pura do lado do cliente tem enormes desvantagens no tempo de carregamento, por isso é frequentemente atenuada ao renderizar alguns elementos estáticos no servidor. Dessa forma, quando o usuário carregar parcialmente uma página, ele já verá alguns elementos na página.
E bem, os modelos são úteis nesse caso, embora às vezes as pessoas usem um gerador de html estático como o Jekyll.
Há outra razão para usar o Jade que não foi mencionada aqui antes.
Espaço em branco.
Se você estiver escrevendo HTML de manutenção humana com recuos e quebras de linha, cada quebra de linha resultará em um nó de texto em espaço em branco. Ele pode estragar a formatação dos elementos embutidos em alguns casos e tornar o código javascript mais estranho.
Você pode ler mais detalhes aqui: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM
Se você estiver escrevendo código Jade, ele é compilado em HTML de uma linha que não possui esse problema.
fonte
Ao trabalhar em equipe, o front-end provavelmente prefere projetar suas páginas como html estático. A tradução desse html estático em modelos dinâmicos é uma fonte de erros e a adição de jade adiciona essa etapa de tradução.
Como muitos outros, sou a favor da simplicidade!
fonte