Das Schöne an Vaadin ist seine Einfachheit – Sie schreiben nur Backend-Code . Das haben Sie richtig gelesen. Ein Vaadin-Entwickler muss nur Java oder eine beliebige JVM-Sprache und die Vaadin-API kennen. Zur Laufzeit erstellt Vaadin den clientseitigen Code, d . h. HTML, JavaScript und CSS. Dieser Ansatz ermöglicht es Entwicklern, sich auf die Kernfunktionalität der Anwendung zu konzentrieren, was den Entwicklungsprozess produktiver macht.
Ich habe CSS oben erwähnt: Vaadin ermöglicht Ihnen die Entwicklung Ihres CSS in einem dedizierten, wiederverwendbaren Paket namens Theme . Das Sahnehäubchen: Die Entwicklung eines Themes kann parallel zur Backend-Entwicklung erfolgen und ist nicht an letztere gebunden; der Code muss keine bestimmte Vorlage verwenden oder dem HTML bestimmte Klassen hinzufügen.
<project> <properties> <java.version>17</java.version> <kotlin.version>1.9.24</kotlin.version> <vaadin.version>24.4.9</vaadin.version> <!--1--> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-bom</artifactId> <!--2--> <version>${vaadin.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-spring-boot-starter</artifactId> <!--3--> </dependency> </project>
Vaadin basiert auf einem regulären Java-Servlet, das standardmäßig auf die Root abgebildet wird. Die Vaadin Spring Boot-Integration ermöglicht es, die Standardeinstellung zu überschreiben. Da unsere Codebasis mehrere Frameworks integriert, ordnen wir sie über die entsprechende Eigenschaft /vaadin
zu:
vaadin.url-mapping=/vaadin/*
@Route("/") //1 @PageTitle("Vaadin") //2 class TodoView(todos: ArrayList<Todo>) : VerticalLayout() { //3-4-5 init { //6 // ... //7 } }
RootComponent
Klasse.VerticalLayout
ist eine Klasse, die Vaadin als HTML- div
rendert.init()
bei der ersten Browseranforderung aus. Im obigen Snippet haben wir von VerticalLayout
geerbt, einer von Vaadin bereitgestellten Komponente .
Das Vaadin Design System umfasst eine Reihe von Komponenten, die Sie zum Erstellen Ihrer Benutzeroberfläche verwenden können. Die Komponenten verfügen zusätzlich zur TypeScript-API für die clientseitige Entwicklung über eine serverseitige Java-API.Sie verwenden eine Komponente, indem Sie sie zuerst erstellen und dann einem enthaltenen Layout hinzufügen.
--
Einige Komponenten können andere enthalten und wissen, wie sie ihre Unterkomponenten anordnen. Beispielsweise platziert VerticalLayout
Komponenten von oben nach unten in einer Spalte; HorizontalLayout
platziert sie von links nach rechts in einer Zeile.
add(Label("Hello")) //1 add(Label("world!"))
init()
-Funktion.
label("Hello") //1 label("world!")
label()
ist eine Karibu DSL-Erweiterungsfunktion der HasComponent
-Schnittstelle
Karibu ist großartig, hat aber einen kleinen Nachteil: Es bietet keine Erweiterungsfunktionen für die gesamte API. Sie müssen beispielsweise auf die reguläre API zurückgreifen, um einer Grid
Komponente einen Footer hinzuzufügen:
appendFooterRow().apply { getCell(completedProp).component = Button("Clean up") { todos.removeIf { it.completed } refresh() } }
Als Großrechner die Könige der Computer waren, griff man über Terminals auf sie zu. Die Benutzeroberfläche war ziemlich eingeschränkt und das Rendering erfolgte auf dem „dummen“ Terminal. Bei Personalcomputern wurde die Rendering-Funktionalität vom Server auf den Client verlagert. Zu dieser Zeit ordneten Entwickler einer Komponente über einen Trigger ein Verhalten zu. Sie konnten beispielsweise festlegen, dass Hello world!
gedruckt wird, wenn der Benutzer auf eine Schaltfläche klickt.
Checkbox(todo.completed).apply { //1 addValueChangeListener { todo.completed = it.value } //2 }
Initialisieren Sie eine neue Checkbox
mit einem Wert.
Um weiter zu gehen:
Ursprünglich veröffentlicht bei am 13. Oktober 2024