O Ember.js, ou somente Ember, é um framework web JavaScript de código aberto, baseado na arquitetura Model–view–viewmodel (MVVM). Ele permite aos desenvolvedores aplicativos web de página única escaláveis, ao incorporar expressões idiomáticas comuns e boas práticas de desenvolvimento em seu núcleo.

Ember é usado em muitos sites populares, incluindo Discourse, Groupon, LinkedIn, Vine, Twitch.tv e Chipotle.http://libscore.com/?#Ember Embora inicialmente considerado um framework somente para a web, também é possível criar aplicações para dispositivos móveis e para desktop com o uso de Ember. O exemplo mais notável de um aplicativo Ember para desktop é o Apple Music, uma funcionalidade do iTunes para desktop.

Conceitos básicos Ember é composto por cinco conceitos-chave:

Rotas (Routes) No Ember, o estado de uma aplicação é representada por uma URL. Cada URL tem um objeto de rota correspondente que controla o que é visível para o usuário.

Modelos (Models) Cada rota tem um modelo associado, contendo os dados associados ao estado atual do aplicativo. Embora seja possível usar jQuery para carregar objetos JSON de um servidor e usar esses objetos como modelos, a maioria dos aplicativos usa uma biblioteca de modelos, como Ember Data, para lidar com isso.

Padrões (Templates) Templates são usados para criar o HTML do aplicativo e são escritos com a linguagem de templates HTMLBars. (HTMLBars é uma variação do Handlebars que cria elementos DOM em vez de uma String.)

Componentes Um componente é uma tag HTML personalizada. O comportamento é implementado usando JavaScript e sua aparência é definida usando modelos HTMLBars. Componentes "são donos" de seus dados. Eles também podem ser aninhados e podem se comunicar com seus componentes pai por meio de ações (eventos). Outras bibliotecas de componentes, tais como Polymer também podem ser usadas com Ember.

Serviços Serviços são apenas objetos singleton para armazenar dados de longa duração, como sessões de usuários.

Ember também fornece injeção de dependência, vinculação de dados bidirecional declarativa, propriedades computadas e templates auto-atualizáveis.

Referências

Categoria:Ajax (programação) Categoria:Bibliotecas JavaScript Categoria:Software usando a licença MIT Categoria:Frameworks de aplicações web