Nous recherchons des options pour construire le front-end d'une application que nous créons et essayons d'évaluer un outil qui fonctionnera pour nous et nous donnera la meilleure plate-forme pour aller de l'avant.
Il s'agit d'un projet Node.js. Notre plan initial était d'utiliser Express et de suivre cette voie, mais nous avons décidé qu'avant de lancer cette étape, il serait peut-être préférable de revoir ce qui existe. Notre application comporte plusieurs domaines qui, selon nous, ne correspondent pas au modèle d'une seule page, car ils sont liés du point de vue de l'application, mais pas du point de vue.
Nous avons vu quelques-uns des cadres que nous pourrions utiliser pour développer le client comme Backbone.js , Meteor , etc. et aussi AngularJS.
Cela peut être une question assez évidente, mais nous ne pouvons pas sembler déchiffrer si AngularJS est purement pour une application d'une seule page ou s'il peut être utilisé pour des applications de plusieurs pages comme Express par exemple.
MISE À JOUR 17 juillet 2013 Pour garder les gens informés, je mettrai à jour cette question au fur et à mesure que nous avancerons. Nous allons tout construire ensemble pour le moment, et nous verrons à quel point cela fonctionne. Nous avons contacté quelques personnes qui sont plus qualifiées avec AngularJS que nous et avons posé la question concernant le fractionnement des applications plus grandes qui partagent le contexte, mais qui peuvent être trop volumineuses en travaillant sur une seule page.
Le consensus était que nous pouvions servir plusieurs pages statiques et créer des applications AngularJS qui ne fonctionnent qu'avec ces pages, créant efficacement une collection de SPA et reliant ces applications entre elles à l'aide d'une liaison standard. Maintenant, notre cas d'utilisation est très spécifique car notre solution a plusieurs applications, et comme je l'ai dit, nous allons d'abord essayer la base de code unique et l'optimiser à partir de là.
MISE À JOUR 18 juin 2016 Le projet est tombé d'une falaise, nous n'avons donc jamais pu en faire trop. Nous l'avons repris récemment, mais n'utilisons plus angular et utilisons React à la place. Nous utilisons toujours l'architecture décrite dans la mise à jour précédente, où nous utilisons des applications express et autonomes, par exemple, nous avons un /chat
itinéraire dans express qui sert notre application de chat React, nous avons un autre itinéraire /projects
qui sert l'application de projets et bientôt. La façon dont nous le regardons est que chaque application est une racine agrégée en termes de fonctionnalités, elle doit être autonome pour être considérée comme une application en soi. Techniquement, toutes les informations sont disponibles, leur express juste basique et quelle que soit la saveur de la construction d'applications côté client que vous souhaitez utiliser.
la source
Réponses:
Pas du tout. Vous pouvez utiliser Angular pour créer une variété d'applications. Le routage côté client n'est qu'un petit morceau de cela.
Vous disposez d'une grande liste de fonctionnalités qui vous seront utiles en dehors du routage côté client:
C'est fou de penser que tout cela "ne peut être utilisé que dans une application d'une seule page". Bien sûr que non ... c'est comme dire "Jquery est uniquement pour les projets avec animations".
Si cela correspond à votre projet, utilisez-le.
la source
J'ai d'abord eu du mal avec le "comment" avec Angular. Puis un jour, il m'est apparu: "C'est toujours du javascript". Il y a un tas d'exemples sur les tenants et les aboutissants d'Angular (l'un de mes favoris avec le livre https://github.com/angular-app/angular-app ). La plus grande chose à retenir est de charger les fichiers js comme vous le feriez dans n'importe quel autre projet. Tout ce que vous avez à faire est de vous assurer que les différentes pages référencent le bon objet angulaire (contrôleur, vue, etc.) et que vous êtes éteint et en cours d'exécution. J'espère que cela a du sens, mais la réponse était si simple que je l'ai négligée.
la source
Peut-être que mon expérience sera utile à quelqu'un. Nous divisons notre projet de façon logique. Un SPA que nous utilisons pour le flux, un autre pour travailler avec la carte, un autre pour modifier un profil utilisateur, etc. Par exemple, nous avons trois applications: flux, utilisateur et carte. Je l'utilise dans les URL séparées, comme ceci:
Chacune de ces applications possède ses propres mappages de routage local entre les états de l'application. Je pense que c'est une bonne pratique car chaque application ne fonctionne qu'avec son propre contexte et ses propres dépendances de charge dont elle a vraiment besoin. En outre, c'est une très bonne pratique pour les processus de débogage et d'intégration.
En effet, vous pouvez très facilement faire un mix d'applications SPA, par exemple le flux sera url avec l'application angularjs, l'application utilisateur avec les reactjs et mappera vers l'application backbone.js.
En réponse à votre question:
Angular non seulement pour les SPA, Angular joue bien et rapidement pour les applications SPA, mais personne ne se soucie de créer une application MPA d'une variété d'applications SPA. Mais en pensant à votre architecture d'URL, n'oubliez pas la disponibilité SEO de vos applications.
Je soutiens également l'idée:
la source
Si tout ce dont vous avez besoin est de quelques pages avec la liaison de données client, j'irais avec Knockout et Javascript Namespacing.
Knockout est génial, surtout si vous avez besoin d'une compatibilité descendante simple et que vous avez des pages assez simples. Si vous utilisez des composants tiers, les liaisons personnalisées de Knockout sont simples et faciles à utiliser.
L'espacement de noms Javascript vous permet de garder votre code séparé et gérable.
Et dans une balise de script après le chargement de vos autres scripts
La clé est que vous utilisez l'outil que vous voulez quand vous en avez besoin. Besoin d'une liaison de données? Knockout (ou ce que vous voulez). Besoin de routage? sammy.js (ou ce que vous voulez).
Le code client peut être aussi simple ou compliqué que vous le souhaitez. J'ai essayé d'intégrer Angular dans un site très compliqué avec un framework propriétaire existant, et c'était un cauchemar. Angulaire est idéal si vous commencez frais, mais il a une courbe d'apprentissage et vous enferme dans un flux de travail très serré. Si vous ne le suivez pas, votre code peut s'emmêler très rapidement.
la source
Je dirais que Angular est exagéré si vous cherchez simplement à développer un SPA. Bien sûr, si vous êtes déjà à l'aise avec cela, allez-y. Mais si vous êtes nouveau dans le cadre et n'avez besoin que de développer un SPA, j'irais avec quelque chose de plus simple avec un certain nombre de ses propres avantages. Je recommande de regarder dans Vue.js ou Aurelia.io .
Vue.js utilise une liaison de données bidirectionnelle, MVVM, des composants réutilisables, simples et rapides à récupérer, moins de code à écrire, etc. Il combine certaines des meilleures fonctionnalités d'Angular et React.
Aurelia.io , en toute honnêteté, je ne sais pas grand-chose. Mais j'ai jeté un coup d'œil et cela semble une alternative intéressante, similaire à ce qui précède.
Liens:
https://vuejs.org/
http://aurelia.io/
la source