Composant vs Widget

10

Dans Magento 2, quelle est la différence entre un composant et un widget? Par exemple, il existe un composant modal et un widget modal, ils semblent tous deux faire la même chose.

Composant

Le composant Modal UI implémente une fenêtre secondaire qui s'ouvre en haut de la fenêtre principale. Il utilise le widget modal.

Widget

Le widget modal Magento implémente une fenêtre secondaire qui s'ouvre en haut de la fenêtre principale.

Le widget peut être initialisé avec quelques lignes de JS, alors que le composant nécessite de nombreuses lignes de XML et utilise toujours le widget. Alors, pourquoi utiliser la méthode XML?

Ben Crook
la source

Réponses:

6

Le widget peut être initialisé avec quelques lignes de JS, alors que le composant nécessite de nombreuses lignes de XML et utilise toujours le widget. Alors, pourquoi utiliser la méthode XML?

Le système de composants d'interface utilisateur permet à un développeur de regrouper un certain nombre de modules RequireJS différents en tant que constructeurs de modèles de vue KnockoutJS (avec les modèles Knockout.js "distants" associés), puis d'utiliser ces modèles de vue dans la source HTML de la page Magento avec un liaison de portée spéciale Knockout.js. Chaque composant d'interface utilisateur est également associé à un ensemble de données côté serveur. L'objectif final est de créer un élément complexe de fonctionnalités d'interface utilisateur qui n'est pas seulement un fichier javascript géant et désordonné, mais que les utilisateurs finaux peuvent inclure avec un simple <uiCompnent name="foo"/>XML dans leur mise en page XML.

Donc, vous avez raison, le widget modal est plus facile à démarrer. Cependant, si vous créez un composant d'interface utilisateur complexe et que vous souhaitez que votre composant d'interface utilisateur complexe inclue une fonctionnalité modale, vous devez insérer le composant d'interface utilisateur modale.

Du moins - c'est ma compréhension actuelle de la situation / du système. Plus de contexte dans ma série de composants d'interface utilisateur (lien automatique) si vous êtes intéressé

Alan Storm
la source
Si j'ai une tâche pour CRUD quelque chose associé aux données de modèle, exemple de composant de forme modale, je devrais utiliser un composant modal plutôt qu'un widget modal! Droite ? Mais il semble plus difficile à mettre en œuvre
mrtuvn
Merci pour la réponse et le lien @ alan-storm, je vais certainement les vérifier. Cela semble beaucoup plus difficile à mettre en œuvre, mais je suppose que pour un gros travail, cela a plus de sens. Je vais lui donner quelques jours pour plus de réponses puis en accepter une.
Ben Crook