Quelle est l'utilité de Jade ou le Guidon lors de l'écriture d'applications AngularJs
Je suis nouveau(ish) de l'ensemble de javascript full stack applications, et de nouvelles Angulaire, donc j'espérais que quelqu'un peut mettre les pendules à l'heure pour moi ici.
Pourquoi aurais-je besoin pour utiliser un template cadre comme le Jade ou le Guidon lors de l'écriture de côté client des applications en utilisant AngularJS.
Je dois dire que je n'ai jamais utilisé l'un de ces templates cadres soit. Donc, je ne suis pas familier avec les avantages complètement. Mais quand je regarde le Guidon par exemple, il fait beaucoup des mêmes choses que je ferais dans Angulaire, boucles etc.
Aussi loin que je peux dire, il serait le plus judicieux pour créer les modèles Angulaire à l'aide de HTML propre et ensuite faire tout de templating côté client, et de combiner cela avec une API première approche à l'aide d'un noeud et de mongo par exemple.
La raison de cette confusion est que beaucoup des exemples que j'ai trouver sur GitHub faire usage de Jade, et il semble contre-intuitif pour moi.
Merci de m'éclairer, et me droite. J'aimerais apprendre des pratiques exemplaires que de personnes qui en savent beaucoup plus que moi.
Grâce
Vous devez vous connecter pour publier un commentaire.
Ceux qui inconditionnellement faveur de Jade dans Angulaire de l'environnement ne parviennent pas à comprendre que la logique de vue appartient au client, et la logique métier sur le serveur, tout comme l'OP commenté.
Ne pas le faire, sauf si vous avez une très bonne raison de le faire. Dans l'ingénierie, un système avec moins de pièces en mouvement est un système plus fiable, et un système où l'interface limites (client/serveur) sont respectés est plus facile à maintenir dans le long terme, donc par défaut à l'architecture la plus simple et propre de la division du travail, si possible. Si vous avez des raisons impérieuses d'intérêt général, de faire ce que vous devez, mais caveat emptor.
Récemment, j'ai revu certains de code où la droite Angulaire de template aurait fait un bien meilleur travail que le mélange de Jade, juste à travers le maintien de la simplicité.
De côté à partir d'un modèle d'extension, Jade n'apporte rien d'utile à la table Angulaire n'est pas déjà approvisionnement. Soyons honnêtes: en Utilisant le principe de "favoriser la composition au cours de l'héritage" (c'est à dire partiels), vous ne devriez jamais besoin modèle d'extensibilité. Jade est à peine "plus facile à analyser" que le HTML. Ils sont mais trivialement différents, alors que Jade ajoute un autre niveau d'indirection mieux éviter.
Il y en a un valide, spécialisées cas pour le serveur-côté de template: Optimisation, en se souvenant que l'optimisation est généralement une Mauvaise Chose. Où les performances sont vraiment au problème, et vous avez la capacité du serveur de rechange pour gérer cela, côté serveur de template peut aider. Cela s'applique à des produits tels que Twitter et camp de base, où le coût de faire beaucoup de côté de serveur de travail est compensée par les gains de la réduction de la demande au serveur.
Comme pour le Guidon, il n'est pas nécessaire de remplacer AngularJS est (incroyable) côté client, la création de modèles.
- Je utiliser de Jade de générer des modèles consommée par AngularJS parce que je déteste l'écriture HTML. Il ressemble à quelque chose comme:
... je pense que c'est beaucoup plus propre que le HTML.
ng-inlude
, peut-être utilisée avecng-src
, très différente de Jades mixin et et comprend?ng-src
est juste comme la src dans<img src="…">
qui prend en charge Angulaire expressions, il est donc hors de propos ici. Je n'ai pas utiliséng-include
beaucoup, mais sur la surface, il peut remplacer le comprend, pas mixin. Vous pouvez générer des fragments de HTML à l'aide de Jade et de le consommer viang-include
.Honnêtement, je ne comprends pas pourquoi les gens se soucient de la différence entre ce:
et ce:
Sauf que je trouve un peu plus lisible. Légèrement. Je ne comprends pas pourquoi les gens sont si fervente sur le sujet. C'est tout bikeshedding. La différence est négligeable et tout programmeur compétent pourrait facilement traduire l'une dans l'autre au bout de cinq secondes sur Google. Utilisez ce que vous voulez et laisser tout le monde se quereller pour rien. Choisissez vos batailles et de participer à des débats sur les choses qui comptent vraiment, comme les réacteurs atomiques 😉
if
à l'équation, tout change brusquement. Voir ci-dessus à propos de "les utilisateurs premium".if
s dans votre jade balisage alors que vous avez déjà une nécessité pour une sorte de moteur de template de toute façon et vous auriez à le convertir à quoi queif
syntaxe est utilisée par le moteur. Je ne comprends pas vraiment votre critique.</div>
comme une ligne.Donc TL;DR, sur le serveur, vous pouvez utiliser n'importe quel langage [jade,haml,...] pour générer le html juste de la structure de votre application, elle n'a rien à voir avec angularJS, puisqu'il sera rendu et de travailler avec le format HTML au moment de l'exécution sur le frontend.
Vous n'avez pas à utiliser de Jade sur le serveur, et je suggère de ne pas utiliser depuis qu'il va confondre les nouveaux développeurs. Dans les projets que vous voyez qu'ils utilisent Jade seulement parce que c'est plus propre et qu'ils y sont habitués, et si elle utilise avec angularJS, c'est le seul travail est de générer du html sans aucune logique.
Accepté la réponse est quelque peu unilatérale, et néglige le fait que toute installation de pré-compilateur pour le HTML a un grand usage pour TOUT type de projet HTML: Composition et résultant de la majoration de la flexibilité.
De travailler seul sur un angulaire de l'app? Donner Jade essayer.
Jade améliore votre capacité à modulariser le code HTML, diminue la quantité de temps que vous avez passé sur le débogage de code HTML et encourage également la construction de balisage des stocks.
Lors de la conception du temps il peut y avoir une énorme quantité d'itération sur les parties HTML. Si la sortie HTML est basé sur un ensemble de jade fichiers, il est facile pour l'équipe d'être flexible sur l'évolution des besoins. Aussi, en changeant le balisage via la re-composition de jade comprend est beaucoup plus robuste que la ré-écriture du pur HTML.
Cela étant dit, je reconnais l'aversion générale mélange angulaire avec jade en production ou en phase de développement. L'introduction d'un autre de la syntaxe de la connaissance est une mauvaise idée pour la plupart des équipes et de l'utilisation de jade pourrait masquer l'inefficacité de la gestion de projet par abstraction, une partie du travail serait interdit par la SEC principes (par exemple, être paresseux sur le balisage préparation)
J'ai lu toutes les réponses ci-dessus et a été un peu surpris que personne n'avait mentionné un aspect qui rend l'utilisation de jade sur la génération AngularJS modèles une chose très utile.
Comme elle l'a déjà été dit, dans la production, des scénarios réalistes différence entre taper du html brut et de jade est en fait remarquable, mais le plus important, nous ne devons jamais oublier, c'est que parfois, nous avons besoin de façon dynamique changé et réinitialisé angularjs modèles.
Pour faire simple, parfois nous avons besoin de changer le html via innerHTML et puis force AngularJS pour recompiler le contenu. Et c'est exactement le type de tâche lors de la génération de ces points de vue via jade peut avoir des avantages.
Aussi, AngularJS fonctionne bien avec des modèles dont la structure est par définition bien connue. En fait, il arrive que nous ne connaissons pas la structure exacte (imaginer, dire, JSON moteur de rendu). AngularJS va être assez maladroit ici (même si sont angulaire de la construction d'une application), alors que jade va faire le travail.
Vous pouvez inclure angulaire modèles via Jade.
Pour la mise en cache des modèles que je perçois cela comme beaucoup moins fragile que le échappés des modèles dans les fichiers javascript.
Voir: https://docs.angularjs.org/api/ng/service/$templateCache
Jade est certainement beaucoup plus proche de html que de dire Haml. Ainsi, le changement de contexte est en fait très minime. Pourtant, il n'est pas complètement absent. Il ne peut pas d'importance pour un développeur à tous. Mais quand votre concepteur arrive et vous demande comment faire pour obtenir une balise imbriquée pour fonctionner correctement, vous êtes à la résolution d'un inutile problème que vous avez créé dans la première place.
HTML peut toujours être écrit très lisiblement et partiels peuvent être utilisés pour le rendre plus compréhensible. 500 lignes de quelque chose est difficile à lire - il de Jade ou HTML.
Ici est un modèle Jade
Et l'équivalent en HTML
Lorsqu'il est écrit lisiblement, je ne vois que le HTML soit très particulièrement défavorisés de manière à justifier un commutateur. Bien sûr, l'écart angulaire entre parenthèses sont une horreur. Mais je préfère les avoir, que d'avoir à traiter avec le designer de douter que l'indirection j'ai présenté, c'est de casser le code html. ( Il ne peut pas. Mais la preuve n'est pas un digne effort )
Tout d'abord, vous avez toujours besoin d'un certain type de serveur-côté de templating.
Pure côté client création de modèles ont des inconvénients énormes dans un temps de chargement, il est souvent atténué par le rendu de certains éléments statiques sur le serveur. De cette façon, lorsque l'utilisateur partiellement charge une page, il va déjà voir quelques éléments sur la page.
Et bien, les modèles sont à portée de main dans ce cas, bien que les gens utilisent parfois statique générateur de code html comme Jekyll à la place.
Il y a une autre raison pour l'utilisation de Jade qui n'est pas mentionné ici avant.
Espaces.
Si vous êtes à la rédaction de l'homme-maintenable HTML avec des indentations et des sauts de lignes, chaque saut de ligne entraînera dans un espace nœud de texte. Il peut à peu près vis de la mise en forme des éléments en ligne, dans certains cas, et de faire de code javascript plus bizarre.
Vous pouvez lire plus de détails ici: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM
Si vous écrivez du code de Jade, il est compilé en une seule ligne de code HTML qui n'ont pas ce problème.
Lorsque vous travaillez en équipe, avant la fin de l'susceptibles préfère la conception de leurs pages html statiques. La traduction que html statique en dynamique des modèles est une source d'erreurs, et l'ajout de jade ajoute une telle étape de traduction.
Comme beaucoup d'autres, je suis en faveur de la simplicité!