web-dev-qa-db-fra.com

Existe-t-il un framework (micro-) MVC JavaScript?

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:

  • Model and View met à jour le contrôleur lorsque les valeurs changent (modèle Observer)
  • Remplir le modèle à partir des données de formulaire lors du chargement de la page
  • Remplir le formulaire à partir du modèle lorsque celui-ci change

Ajax, comète, JSONP et tout ce jazz est excessif.

133
nicholaides

Backbone est un excellent cadre léger. Essayez-le: http://backbonejs.org/

71
Martin Drapeau

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:

  • Générateurs de code
  • Tests intégrés Selenium et Env.js
  • Moteur de documentation
  • Concat automatique + Compresse
  • Détection d'erreur et rapport
33
Justin Meyer

Spine a une API similaire à Backbone mais elle est beaucoup plus petite. Il présente un héritage prototypique.

21
Kolja

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

20
Vojta

En effet il y a: http://www.javascriptmvc.com/

Je pense que vous trouverez cela suffisant!

14
Filip Ekberg

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!)

14
Larsi

Il y a le populaire Backbone.js

9
Drew LeSueur

Stapes.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.

8
Husky

Ember.js

Ce sont les trois caractéristiques qui font de Ember) un plaisir à utiliser:

  1. Fixations
  2. Propriétés calculées
  3. Mise à jour automatique des modèles

Fixations

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.

Propriétés calculées

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é.

Mise à jour automatique des modèles

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>
8
Sam Hasler

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.

7
system PAUSE

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 .

4
system PAUSE

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.

3
Ricky

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.

jquery-claypool

J'espère que vous vérifiez.

3
Chris Thatcher

Jamal est le plus léger que j'ai jamais vu. Il est également basé sur jQuery (bonus). Je n'ai pas utilisé.

http://jamal-mvc.com/

2
KevBurnsJr

Essayez mino . Il ne fait que 1,4 Ko et sa seule dépendance est EJS.

2
Michal Jezierski

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.

2
Vikrant Chaudhary

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.

2
Batailley

MISE À JOUR 2016: Sammy.js semble être abandonné.

Regardez Sammy.js

Texte du site:

Un petit webframework avec la classe.

  • [~ # ~] petit [~ # ~] Le coeur de Sammy est seulement compressé à 16K et compressé à 5.2K et gzipped
  • [~ # ~] modulaire [~ # ~] Sammy est construit sur un système de plugins et d'adaptateurs. Incluez uniquement le code dont vous avez besoin. Il est également facile d'extraire votre propre code dans des plugins réutilisables.
  • [~ # ~] clean [~ # ~] L'intégralité de l'API a été conçue pour être facile à comprendre et à lire. Sammy essaie d'encourager une bonne encapsulation et une bonne conception d'applications.
  • [~ # ~] amusant [~ # ~] Quel est le vrai point de développement si ce n'est pas agréable. Sammy essaie de suivre l'approche MATZ. Il est optimisé pour le bonheur des développeurs.
2
Bijan

Juste pour rendre la liste un peu plus complète: ActiveJS

1
Bijan

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.

1
Dan Doyon

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:

  • supprime la dépendance de jQuery (bien que je l’utilise avec jQuery la plupart du temps)
  • le rendant extensible avec des aides. Celles-ci sont analogues aux comportements, composants et aides de CakePHP.
1
Andrea

Je n’appellerais pas cela un micro - framework, mais il a certes l’air intéressant: Cappuccino Web Framework

1
PEZ

CorMVC, facile à comprendre et à utiliser, basé sur jQuery et ne dépend d'aucune technologie serveur

1
epitka

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.

0
Steven Garcia

Je vais aussi faire une pipe ici - AFrameJS fonctionne avec jQuery, MooTools et Prototype.

0
Shane Tomlinson

Un autre: MooTools-MVC

Maverick est un petit framework MVC JavaScript - http://maverick.round.ee

0
Martin Tajur

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 .

0
Steve Harrison
0
Garion

Un de plus, léger et minuscule: http://jqnano.oleksiy.pro/

0
Oleksii G.