Vaadin flux: Différence entre le composant et l'élément

olivmir:

Dans Vaadin flux supplémentaire des composants il y a maintenant des éléments.

Dans le javadoc Element est dit:

Un composant est une abstraction de niveau supérieur d'un élément ou d'une hiérarchie des éléments.

Qu'est-ce que cela signifie en pratique? Ce qui se fait à ce niveau plus élevé et lorsque les éléments et lorsque les composants sont utilisés?

Leif Åstrand:

A titre d'exemple pratique, considérons la balise HTML <input>. Vous pouvez créer un côté serveur Elementinstance qui vous donne un <input>dans le navigateur Element myElement = new Element("input").

De plus, disons que vous voulez configurer le texte de l' espace réservé de l'élément, par exemple <input placeholder="Enter your name here">. En utilisant l' ElementAPI, c'est myElement.setAttribute("placeholder", "Enter your name here").

Comme dernier exemple, vous ajoutez également un écouteur que les événements en avant le changement de valeur au serveur. Vous auriez également besoin de configurer les parties de l'événement du navigateur pour envoyer au serveur et l' accès de cette valeur dans l'auditeur: myElement.addEventListener("change", event -> System.out.println("New value: " + event.getEventData("element.value")).addEventData("element.value");.

Vous pouvez construire votre application entière de cette façon, mais il ne serait pas pratique. Vous voulez avoir une classe qui sait que le nom de la balise est inputsans taper la chaîne à chaque fois. Vous voulez une setPlaceholderméthode au lieu d'utiliser le générique setAttributeet se rappelant le nom de l'attribut. Enfin, vous voulez un moyen d'ajouter un changement valeur auditeur où la nouvelle valeur est disponible event.getValue().

Ceci est exactement où Componentpénètre l'image. Il vous permet de créer une Inputclasse qui étend Componentet fournit une API Java pour exactement ces fonctions. Sous le capot, le Inputcomposant utiliserait l' ElementAPI, mais cacher que les détails de mise en œuvre que l'utilisateur de la Inputclasse ne serait pas connaître.

En outre, un composant peut également être basée sur d' autres composants au lieu d'utiliser directement Element. Ceci est généralement la façon dont vous créez les composants qui constituent des vues , par exemple dans votre application.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=197704&siteId=1
conseillé
Classement