How to Add Components in Vaadin 8 Grid

My question is how to add layouts and buttons to grid in vaadin 8

You can use grid.addComponentColumn() for that.

Example:

grid.addComponentColumn(person -> {
      Button button = new Button("Click me!");
      button.addClickListener(click ->
            Notification.show("Clicked: " + person.toString()));
      return button;
});

Read more here: https://vaadin.com/docs/v8/framework/components/components-grid.html