Vue passive en JavaScript
-
18-09-2020 - |
Question
Je pense à une implémentation de MVP - Modèle de vue passive en JavaScript.Dans la plupart des cas, la vue sera de simples éléments DOM où le présentateur attachant les auditeurs d'événements.Mais lorsqu'il s'agit de widgets comme des pseudo-boîtes pseudo basées sur JavaScript, des fonctions Auto Suggestion ou de l'ARIA, devraient-elles faire partie d'une classe de vue JavaScript ou que la logique de modification de la vue doit-elle faire partie du présentateur? J'ai regardé le Vue JavaScriptMVCS et il semble qu'ils ne sont que des modèles générés par HTML sanstoute logique.Mais pour moi, il ne semble pas différent entre un présentateur qui est écouté à HTML Selectbox et celui qui a été écouté à une pseudo Selectbox avec une logique JavaScript pour imiter une boîte de sélection réelle.Les deux ne devraient pas se soucier de la façon dont la boîte fonctionne en interne, il suffit d'écouter l'événement de changement.
Alors quoi tu penses.Quel est le travail de la classe de visualisation.
La solution
Le travail de la vue est comme un Adaptateur à la technologie de vue. Dans ce cas, votre technologie de vue est probablement jquyery sur HTML via JavaScript. La vue doit être conçue pour faire trois choses:
- Sachez lorsque des événements se produisent et communiquent ces événements au présentateur (cela peut être indirectement, à l'aide d'un cadre de messagerie comme POSTAL.JS )
- Indiquez au présentateur (quand demandé) "Quelle est la valeur de x " où x est une valeur représentée dans la vue.
- Acceptez les messages du présentateur (généralement via un appel de méthode directe) pour modifier les valeurs à la vue.
Une vue dans le motif de vue passive est
La pile ci-dessus montre comment je prévois le modèle, la vue et le présentateur interagissant, ainsi que leur relation avec la technologie de vue et le contrôleur.
- Le navigateur, HTML et DOM (géré via JQuery) sont la technologie de vue
. Ceux-ci sont intrinsèquement complexes et incapables de représenter votre modèle. - La vue
protège votre logique de la technologie vue . Il fournit une indirection afin que vous puissiez vous concentrer sur un code ancien uni dans votre présentateur . La vue doit utiliser utiliser une sorte de messagerie afin de communiquer dans le présentateur. Cela empêche une dépendance bidirectionnelle entre la vue et le présentateur. Il permet également à plusieurs présentateurs de manipuler une vue. - Le présentateur
devrait être responsable de la compréhension de la nature abstraite de la vue et devrait gérer l'état Modèle en fonction de son interface à la vue. Il est capable de comprendre comment récupérer un modèle du maître de contenu et comment persister le modèle retour au serveur. - Le modèle est une représentation de l'état à un point spécifique à temps . Il peut également servir de Dto entre le contrôleur et le présentateur
. En JavaScript, il est facile et parfois préférable de simplement ajouter un comportement de présentateur sur le modèle . - Le contrôleur coordonne la navigation dans l'application et est responsable de l'abstraction des services back-end de la présentation.
Autres conseils
L'objet de vue devrait être responsable de la dessin même.Une vue passive sait
Si le présentateur a repris toutes les responsabilités des vues, il n'y a pas besoin d'une vue du tout.Pourrait aussi bien avoir un présentateur seulement.
Les vues de JavaScriptMVC sont des modèles de clientèle factice.Ce sont des contrôleurs de nœuds ont tendance à jouer un rôle de vue plus traditionnel.