Existem estruturas (micro-) JavaScript MVC do lado do cliente ?
Eu tenho um formulário HTML bastante complicado, e ele se beneficiaria do padrão MVC.
Eu imagino que uma boa solução forneça o seguinte:
- Model e View atualizam o controlador quando os valores mudam (padrão do observador)
- Preencher o modelo a partir dos dados do formulário quando a página for carregada
- Preencha o formulário do modelo quando o modelo for alterado
Ajax, cometa, JSONP e todo esse jazz são um exagero sério.
javascript
model-view-controller
forms
nicholaides
fonte
fonte
Respostas:
O backbone é uma ótima estrutura leve. Experimente: http://backbonejs.org/
fonte
JavaScriptMVC é uma excelente solução. É tudo: uma abordagem de plug-in permite selecionar apenas os recursos necessários. A partir do 2.0, ele é baseado no jQuery.
Ao melhorar progressivamente o seu site, isso fica por conta do usuário, pois o JMVC fornece apenas uma camada intermediária para o desenvolvimento - cabe a você fazer essa escolha de design.
No entanto, o JavaScriptMVC é simplesmente a melhor biblioteca JavaScriptMVC de uso geral devido a seus poderosos controladores baseados em delegação de eventos.
A delegação de eventos permite que você evite anexar manipuladores de eventos e simplesmente crie regras para sua página.
Finalmente, o JMVC é muito mais que uma arquitetura MVC. Tem todas as partes do ciclo de desenvolvimento cobertas com:
fonte
O Spine possui uma API semelhante ao Backbone, mas é muito menor. Possui herança prototípica.
fonte
O AngularJS funciona bem em conjunto com o jQuery e ajudará bastante na estrutura do MVC e na separação estrita de preocupações.
Ambiente de teste completo e injeção de dependência incluídos ...
Confira em http://angularjs.org
fonte
De fato, existe: http://www.javascriptmvc.com/
Eu acho que você vai achar isso suficiente!
fonte
Eu acho que este parece algo que você deve conferir: http://knockoutjs.com/
(Como programador do silverlight / wpf, essa foi a biblioteca que me fez finalmente começar a aprender javascript. É baseado no padrão Model-View-View-Model (MVVM), pois para mim agora parece uma boa escolha!)
fonte
Existe o popular Backbone.js
fonte
Ember.js
Esses são os três recursos que tornam Ember uma alegria de usar:
Ligações
Use ligações para manter as propriedades entre dois objetos diferentes em sincronia. Você apenas declara uma ligação uma vez e o Ember garante que as alterações sejam propagadas em qualquer direção.
Veja como você cria uma ligação entre dois objetos:
As ligações permitem que você arquitete seu aplicativo usando o padrão MVC (Model-View-Controller), e fique tranqüilo sabendo que os dados sempre fluem corretamente de uma camada para outra.
Propriedades computadas
As propriedades computadas permitem tratar uma função como uma propriedade. As propriedades computadas são úteis porque podem trabalhar com ligações, como qualquer outra propriedade.
Modelos de atualização automática
O Ember usa o Handlebars, uma biblioteca de modelos semânticos. Para pegar os dados do seu aplicativo JavaScript e colocá-los no DOM, crie uma tag e coloque-os no seu HTML, sempre que desejar que o valor apareça:
fonte
Stapes.js
Divulgação completa: sou o autor desta biblioteca :)
Se você estiver procurando por algo realmente minúsculo (1,5kb compactado / compactado com gz), dê uma olhada e me diga se você gosta.
fonte
new
operador confuso ). O que parece desnecessário é outroeach
emap
. Eu já os tenho em Underscore.js e jQuery .Se seus requisitos são realmente simples, você pode escrever seu próprio MVC simples, como Alex Netkachov fez.
Seus exemplos são construídos no dojo (Nota: eles não funcionam para mim em sua página por causa de um arquivo dojo.js ausente), mas você pode seguir o padrão em Javascript puro.
fonte
Provavelmente é um exagero para o que você precisa, mas o SproutCore é uma estrutura MVC e não parece mais pesada que JavaScriptMVC ou Junção TrimPath .
Infelizmente, nada disso parece ter como base o princípio do aprimoramento progressivo .
fonte
A popular estrutura do ActionScript MVC PureMVC foi recentemente portada para JavaScript. Ainda não tive a chance de testá-lo, mas estou confiante de que é bom.
fonte
Por favor , verifique também jquery-claypool .
O jquery-claypool é um framework mvc pequeno, rápido e disponível, construído no jquery, baseado na minha experiência com django, trilhos, primavera etc.
fornece uma estrutura de roteamento para mvc limpo, registro de categoria, filtros (aop), criação lenta de controladores, inversão de controle, convenção sobre configuração e não muito mais por design.
ele não faz nada que o jquery já faz, parece o jquery e funciona como uma boa estrutura: simplesmente.
jquery-claypool
Espero que você verifique isso.
fonte
Jamal é o mais leve que eu já vi. Também é baseado em jQuery (bônus). Não usei.
http://jamal-mvc.com/
fonte
Se você deseja manter as coisas sob controle e bastante simples, pode não precisar de uma estrutura, mas apenas implemente seu próprio padrão mvc. Basta verificar este artigo: Model-View-Controller (MVC) com JavaScript por Alex Netkachov em 2006.
fonte
Aqui está uma lista de todas as estruturas JavaScript de código aberto conhecidas pela humanidade.
http://getopensource.info/explore/javascript/framework/
Ou apenas estruturas MVC
http://getopensource.info/explore/javascript/mvc/
Divulgação: eu sou o desenvolvedor deste site.
fonte
Tente gatinho . É apenas 1,4 KB e sua única dependência é EJS.
fonte
ATUALIZAÇÃO 2016: Sammy.js parece estar abandonado.
Dê uma olhada no Sammy.js
Texto do site:
Uma pequena estrutura da web com classe.
fonte
Eu não chamaria isso de micro- estrutura, mas com certeza parece interessante: Cappuccino Web Framework
fonte
CorMVC, fácil de entender e começar, baseado em jquery e não depende de nenhuma tecnologia de servidor
fonte
Eu desenvolvi uma estrutura MVC Javascript muito simples chamada MCV . Ele não faz exatamente o que você pede, mas é facilmente extensível com os auxiliares. Enfim, é definitivamente micro (1,9kb compactado).
Funciona mais ou menos como Jamal, mas eu decidi fazer o meu por dois motivos:
fonte
Apenas para tornar a lista um pouco mais completa: ActiveJS
fonte
Votei no AngularJS (divulgação completa, estou envolvido de forma limitada no esforço de desenvolvimento angular) e estou muito empolgado com isso. Fiz uma comparação lado a lado, usando um recurso para um projeto interno (desculpe não ter aprovação para compartilhá-lo) e implementando-o no AngularJS e no Backbone. Foi um ótimo exercício e, no final, estou muito inclinado a Angular. Os desenvolvedores principais são ótimos em responder perguntas e fizeram um trabalho muito bom com ligação de dados integrada, testes de unidade / e2e e documentação. Ainda está na versão beta com a 1.0 saindo no futuro próximo. O beta é muito estável.
Há uma mudança de paradigma, e eles usam uma abordagem bastante diferente da maioria. A integração de seus plugins jquery favoritos requer um pouco de esforço, mas é factível e já foi feita (contribuição angular no github).
Eu direi (e este é um problema para a maioria das estruturas centradas em js), certifique-se de investigar como tornar seu conteúdo compatível com SEO (se for importante para você). Desde que entrei para a comunidade angular em junho, notei que o interesse está aumentando e várias pessoas estão postando mensagens dizendo que olharam para o Backbone e outros, mas realmente gostaram do que estão vendo no Angular.
fonte
O Maverick é uma pequena estrutura MVC JavaScript - http://maverick.round.ee
fonte
Também vou aparecer aqui - o AFrameJS trabalha com jQuery, MooTools e Prototype.
fonte
Outro: MooTools-MVC
fonte
Havia uma estrutura JavaScript de ligação de valor-chave chamada "Coherent", inspirada nas ligações de cacau da Apple. A estrutura foi comprada pela Apple, mas ainda existe uma cópia antiga em http://github.com/trek/coherentjs/tree/master .
fonte
Experimente esta estrutura MVC javascript baseada em jQuery .
fonte
Mais um, leve e minúsculo: http://jqnano.oleksiy.pro/
fonte
O Can.js tem tudo o que você precisa e pesa apenas 8 KB. Ele pegou os melhores bits do JavaScriptMVC e o destilou em uma estrutura pequena, porém excelente, com observadores, widgets, encadernação e trabalhos. É compatível com as principais estruturas ( jQuery , Dojo Toolkit , MooTools , etc.). A documentação é excelente e os autores são responsivos. Definitivamente vale a pena dar uma olhada.
fonte