KnockoutJS - Aplicativo
KnockoutJS é amplamente usado para aplicativos de página única - um site criado com a capacidade de recuperar todos os dados necessários dinamicamente com um único carregamento de página, reduzindo as idas e voltas do servidor.
KnockoutJS é uma estrutura do lado do cliente. Esta é uma biblioteca JavaScript que torna muito fácil vincular HTML a dados de domínio. Ele implementa um padrão chamado Model-View-ViewModel (MVVM). Observáveis são o ingrediente mágico de KnockoutJS. Todos os dados permanecem sincronizados por causa do atributo Observable.
Arquitetura
Visão
A visualização nada mais é do que uma interface de usuário criada com elementos HTML e estilo CSS.
Você pode vincular elementos HTML DOM ao modelo de dados usando KnockoutJS. Ele fornece ligação de dados bidirecional entre View e ViewModel usando o conceito de 'data-bind', o que significa que todas as atualizações feitas na IU são refletidas no modelo de dados e todas as alterações feitas no modelo de dados são refletidas na IU. Pode-se criar uma IU de atualização automática com a ajuda de knockoutJS.
ViewModel
ViewModel é um objeto JavaScript, que contém propriedades e funções necessárias para representar dados. View e ViewModel estão conectados com o conceito de data-bind declarativo usado em HTML. Isso torna mais fácil alterar o HTML sem alterar ViewModel. KnockoutJS cuida da atualização automática de dados entre eles por meio do uso de Observáveis.
A sincronização de dados é obtida por meio da vinculação de elementos DOM ao Modelo de Dados, primeiro usando vinculação de dados e, em seguida, atualizando esses 2 componentes por meio do uso de Observáveis. O rastreamento de dependência é feito automaticamente devido a esta sincronização de dados. Nenhuma codificação extra é necessária para alcançá-lo. KnockoutJS permite criar uma conexão direta entre o display e os dados subjacentes.
Você pode criar suas próprias ligações chamadas como ligações personalizadas para comportamentos específicos do aplicativo. Dessa forma, o Knockout oferece controle direto de como você deseja transformar seus dados em HTML.
Modelo
Model são os dados de domínio no servidor e são manipulados conforme e quando a solicitação é enviada / recebida de ViewModel.
Os dados podem ser armazenados em banco de dados, cookie ou outra forma de armazenamento persistente. KnockoutJS não se preocupa com a forma como ele é armazenado. Cabe ao programador a comunicação entre os dados armazenados e o KnockoutJS.
Na maioria das vezes, os dados são salvos e carregados por meio de uma chamada Ajax.