I prefer Holon Platform Vaadin flow APIs over core Vaadin APIs because of its builder methods. It is easy to chain the methods so where ever possible I’d use Holon Platform. So, here is an example of it for the concepts explained here https://vaadin.com/learn/tutorials/vaadin-quick-start
@Route public class MainView extends VerticalLayout { private VerticalLayout todoList; private Input<String> todoTask; @PostConstruct public void init() { Components.configure(this) .add(Components.h2().text("Todo List").build()) .add(todoList = Components.vl().build()) .add(Components.hl() .spacing() .add(todoTask = Components.input.string().build()) .add(Components.button() .text("Add") .withThemeVariants(ButtonVariant.LUMO_PRIMARY) .withClickShortcut(Key.ENTER) .add() .onClick(click -> { todoList.add(Components.input .boolean_() .label(todoTask.getValue()) .build().getComponent() ); }) .build() ).build() ); } }
And the output looks like
