Existe-t-il un JavaScript côté client MVC (micro-) frameworks?
J'ai un formulaire HTML assez compliqué, et il tirerait profit du modèle MVC.
J'imagine qu'une bonne solution fournirait ce qui suit:
Ajax, comète, JSONP et tout ce jazz est excessif.
Backbone est un excellent cadre léger. Essayez-le: http://backbonejs.org/
JavaScriptMVC est une excellente solution. C'est tout, une approche de plug-in vous permet de sélectionner uniquement les fonctionnalités dont vous avez besoin. Depuis la version 2.0, il est basé sur jQuery.
L'amélioration progressive de votre site Web revient à l'utilisateur, car JMVC ne fournit qu'une couche intermédiaire de développement - à vous de choisir vous-même le design.
Cependant, JavaScriptMVC est tout simplement la meilleure bibliothèque JavaScriptMVC polyvalente en raison de ses puissants contrôleurs basés sur la délégation d'événements.
La délégation d'événements vous permet d'éviter d'attacher des gestionnaires d'événements et de créer simplement des règles pour votre page.
Enfin, JMVC est beaucoup plus qu'une architecture MVC. Il a toutes les parties du cycle de développement recouvertes de:
Spine a une API similaire à Backbone mais elle est beaucoup plus petite. Il présente un héritage prototypique.
AngularJS fonctionne bien avec jQuery et vous aidera beaucoup avec la structure MVC et la séparation stricte des problèmes.
Environnement de test complet et injection de dépendance inclus ...
Vérifiez-le à http://angularjs.org
En effet il y a: http://www.javascriptmvc.com/
Je pense que vous trouverez cela suffisant!
Je pense que celui-ci ressemble à quelque chose que vous devriez vérifier: http://knockoutjs.com/
(En tant que programmeur silverlight/wpf, c’est la bibliothèque qui m’a finalement fait apprendre le javascript. Elle est basée sur le modèle MVVM (Model-View-View-Model-MVVM), pour moi, c’est un bon choix!)
Il y a le populaire Backbone.js
Divulgation complète: je suis l'auteur de cette bibliothèque :)
Si vous cherchez quelque chose de vraiment minuscule (1,5kb minifié/gzippé), jetez-y un coup d'œil et dites-moi si vous l'aimez.
Ce sont les trois caractéristiques qui font de Ember) un plaisir à utiliser:
Utilisez des liaisons pour conserver les propriétés entre deux objets synchronisés. Vous venez de déclarer une liaison une fois, et Ember veillera à ce que les modifications soient propagées dans les deux sens.
Voici comment créer une liaison entre deux objets:
MyApp.president = Ember.Object.create({
name: "Barack Obama"
});
MyApp.country = Ember.Object.create({
// Ending a property with 'Binding' tells Ember to
// create a binding to the presidentName property.
presidentNameBinding: 'MyApp.president.name'
});
MyApp.country.get('presidentName');
// "Barack Obama"
Les liaisons vous permettent d'architecter votre application à l'aide du modèle MVC (Model-View-Controller), puis de rester tranquille en sachant que les données circuleront toujours correctement d'une couche à l'autre.
Les propriétés calculées vous permettent de traiter une fonction comme une propriété. Les propriétés calculées sont utiles car elles peuvent fonctionner avec des liaisons, comme toute autre propriété.
Ember utilise Handlebars, une bibliothèque de modèles sémantiques. Pour extraire des données de votre application JavaScript et les insérer dans le DOM, créez une balise et insérez-la dans votre code HTML, où vous souhaitez que la valeur apparaisse:
<script type="text/x-handlebars">
The President of the United States is {{MyApp.president.fullName}}.
</script>
Si vos exigences sont vraiment simples , vous pouvez écrire votre propre fichier MVC simple, comme Alex Netkachov l'a fait.
Ses exemples sont construits sur dojo (Note: ils ne fonctionnent pas sur sa page à cause d'un fichier dojo.js manquant), mais vous pouvez suivre le modèle en clair, en Javascript.
C'est probablement trop cher pour ce dont vous avez besoin, mais SproutCore est un framework MVC, et il n'a pas l'air plus lourd que JavaScriptMVC ou TrimPath's Jonction.
Malheureusement, aucune d’entre elles ne semble être construite sur le principe de amélioration progressive .
Le populaire framework ActionScript MVC PureMVC a récemment été porté en JavaScript. Je n'ai pas encore eu l'occasion de l'essayer, mais je suis convaincu que c'est bon.
Veuillez aussi passer à la caisse jquery-claypool .
jquery-claypool est un petit framework mvc rapide, disponible et basé sur jquery, basé sur mon expérience de Django, Rails, spring, etc. Il est très léger et fonctionne aussi bien sur le client que sur les environnements de serveur.
il fournit un cadre de routage pour mvc propre, journalisation de catégories, filtres (aop), création de contrôleurs paresseuse, inversion de contrôle, configuration par convention, etc.
il ne fait rien de ce que jQuery fait déjà, se sent comme jQuery et fonctionne comme un bon framework devrait: tout simplement.
J'espère que vous vérifiez.
Jamal est le plus léger que j'ai jamais vu. Il est également basé sur jQuery (bonus). Je n'ai pas utilisé.
Essayez mino . Il ne fait que 1,4 Ko et sa seule dépendance est EJS.
Voici une liste de tous les frameworks JavaScript open-source connus de l'humanité.
http://getopensource.info/explore/javascript/framework/
Ou seulement les frameworks MVC
http://getopensource.info/explore/javascript/mvc/
Divulgation: Je suis le développeur de ce site.
Si vous voulez garder les choses sous contrôle et assez simples, vous n’avez peut-être pas besoin d’un framework, mais implémentez simplement votre propre modèle mvc. Il suffit de vérifier cet article: Model-View-Controller (MVC) avec JavaScript par Alex Netkachov en 2006.
MISE À JOUR 2016: Sammy.js semble être abandonné.
Texte du site:
Un petit webframework avec la classe.
Juste pour rendre la liste un peu plus complète: ActiveJS
J'ai voté en faveur de AngularJS (divulgation complète, je suis impliqué de manière limitée dans le angular dev effort)) et je suis très enthousiaste à ce sujet. J'ai fait une comparaison côte à côte en prenant une fonctionnalité pour un projet interne (désolé, ne pas avoir la permission de le partager) et de le mettre en œuvre à la fois dans AngularJS et Backbone.C'était un excellent exercice et au final, je suis très orienté vers Angular. Les développeurs principaux sont très doués pour répondre questions et ils ont fait un travail vraiment agréable avec la liaison de données intégrée, les tests unitaires/e2e et la documentation. Il est toujours en version bêta avec la version 1.0 dans un avenir proche.
Il y a un peu de changement de paradigme, et ils utilisent une approche assez différente de la plupart. L'intégration de vos plugins jquery préférés demande un peu d'effort mais est faisable et a déjà été faite (angular-contrib on github).
Je dirai (et c’est un problème pour la plupart des frameworks js-centric), assurez-vous d’explorer comment rendre votre contenu convivial pour le référencement (s’il est important pour vous). Depuis que j'ai rejoint la communauté angular) en juin, j'ai constaté un intérêt croissant et de nombreuses personnes ont publié des posts disant qu'ils avaient regardé Backbone et d'autres, mais qu'ils aimaient vraiment ce qu'ils voyaient. en angulaire.
J'ai développé un framework Javascript très simple appelé MVC appelé MCV . Il ne fait pas exactement ce que vous demandez, mais il est facilement extensible avec des assistants. Quoi qu'il en soit, il est définitivement micro (1,9kb emballé).
Cela fonctionne plus ou moins comme Jamal, mais j'ai décidé de lancer le mien pour deux raisons:
Je n’appellerais pas cela un micro - framework, mais il a certes l’air intéressant: Cappuccino Web Framework
CorMVC, facile à comprendre et à utiliser, basé sur jQuery et ne dépend d'aucune technologie serveur
Can.js a tout ce dont vous avez besoin et ne pèse que 8 Ko. Il utilise les meilleurs éléments de JavaScriptMVC et les distille dans un cadre simple mais ambitieux avec des observateurs, des widgets, des liaisons, des travaux. Il est compatible avec les principaux cadres ( jQuery , Dojo Toolkit , MooTools , etc.). La documentation est excellente et les auteurs sont réactifs. Cela vaut vraiment le coup d'oeil.
Je vais aussi faire une pipe ici - AFrameJS fonctionne avec jQuery, MooTools et Prototype.
Un autre: MooTools-MVC
Maverick est un petit framework MVC JavaScript - http://maverick.round.ee
Il existait un cadre JavaScript de liaison clé-valeur appelé "Coherent", inspiré des liaisons Cocoa de Apple. Le framework a été acheté par Apple, mais il existe toujours une ancienne copie à l’adresse http://github.com/trek/coherentjs/tree/master .
Essayez ceci framework MVC javascript basé sur jQuery .
Un de plus, léger et minuscule: http://jqnano.oleksiy.pro/