Ang kagandahan ng Vaadin ay nakasalalay sa pagiging simple nito - nagsusulat ka lamang ng backend code . Basahin mong mabuti yan. Kailangan lang malaman ng developer ng Vaadin ang Java, o anumang wikang JVM, at ang Vaadin API. Sa runtime, gagawa si Vaadin ng client-side code, ibig sabihin , HTML, JavaScript, at CSS. Ang diskarte na ito ay nagbibigay ng kapangyarihan sa mga developer na tumuon sa pangunahing functionality ng application, na ginagawang mas produktibo ang proseso ng pagbuo.
Binanggit ko ang CSS sa itaas: Pinapayagan ka ng Vaadin na bumuo ng iyong CSS sa isang nakalaang magagamit muli na pakete na tinatawag na tema . Ang icing sa cake: ang pagbuo ng isang tema ay maaaring gawin nang kahanay sa pag-unlad ng backend at walang pagsunod sa huli; ang code ay hindi kailangang gumamit ng isang partikular na template o magdagdag ng mga partikular na klase sa HTML.
<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>
Ang Vaadin ay bubuo sa isang regular na Java Servlet, na nagmamapa sa ugat bilang default. Ang Vaadin Spring Boot integration ay nagbibigay-daan sa pag-override sa default. Dahil ang aming codebase ay nagsasama ng maraming mga frameworks, imapa namin ito sa /vaadin
sa pamamagitan ng nauugnay na property:
vaadin.url-mapping=/vaadin/*
@Route("/") //1 @PageTitle("Vaadin") //2 class TodoView(todos: ArrayList<Todo>) : VerticalLayout() { //3-4-5 init { //6 // ... //7 } }
RootComponent
.VerticalLayout
ay isang klase na nire-render ni Vaadin bilang isang HTML div
init()
function sa unang kahilingan sa browser. Sa snippet sa itaas, namana namin mula sa VerticalLayout
, isang bahaging ibinigay ng Vaadin .
Kasama sa Vaadin Design System ang isang hanay ng mga bahagi na magagamit mo para buuin ang iyong UI. Ang mga bahagi ay may server-side na Java API bilang karagdagan sa TypeScript API para sa client-side development.Gumagamit ka ng isang bahagi sa pamamagitan ng unang paggawa nito at pagkatapos ay idagdag ito sa isang naglalaman ng layout.
--
Ang ilang bahagi ay maaaring maglaman ng iba, at alam nila kung paano ilatag ang kanilang mga subcomponents. Halimbawa, inilalagay VerticalLayout
ang mga bahagi mula sa itaas hanggang sa ibaba sa isang hanay; Inilalagay sila HorizontalLayout
mula kaliwa-pakanan sa isang hilera.
add(Label("Hello")) //1 add(Label("world!"))
init()
function.
label("Hello") //1 label("world!")
label()
ay isang Karibu DSL extension function sa HasComponent
interface
Mahusay ang Karibu, ngunit may kaunting downside: hindi ito nag-aalok ng mga extension function para sa buong API. Halimbawa, kailangan mong bumalik sa regular na API upang magdagdag ng footer sa isang bahagi Grid
:
appendFooterRow().apply { getCell(completedProp).component = Button("Clean up") { todos.removeIf { it.completed } refresh() } }
Kapag ang mga mainframe ay ang mga hari ng computing, na-access mo ang mga ito sa pamamagitan ng mga terminal. Ang UI ay medyo limitado, at ang pag-render ay naganap sa "pipi" na terminal. Inilipat ng mga personal na computer ang pagpapagana ng pag-render mula sa server patungo sa kliyente. Sa oras na ito, ang mga developer ay nag-attach ng gawi sa isang bahagi sa pamamagitan ng trigger. Halimbawa, maaari mong itali ang pag-print ng Hello world!
kapag nag-click ang user sa isang button.
Checkbox(todo.completed).apply { //1 addValueChangeListener { todo.completed = it.value } //2 }
Magsimula ng bagong bahagi Checkbox
na may halaga.
Upang pumunta pa:
Orihinal na nai-publish sa noong ika-13 ng Oktubre, 2024