For more information, see How to select a version tag of ASP.NET Core source code (dotnet/AspNetCore.Docs #26205). ComponentBase implements the lowest abstraction of components, the IComponent interface. The preceding example renders the following unnecessary whitespace: A list of 100 items results in over 400 areas of whitespace. When rendering a list of elements or components and the elements or components subsequently change, Blazor must decide which of the previous elements or components are retained and how model objects should map to them. Use EventCallback when there's no value passed to the callback. Adding a button onclick event. Supported EventArgs are shown in the following table. The QuickGrid component is an experimental Razor component for quickly and efficiently displaying data in tabular form. An expression is also a permitted value of the attribute. This capability isn't included with .NET 6, but is enabled by the new support for rendering Razor components from JS. The following example shows the default Counter component with an @code block in an app generated from a Blazor project template. The following Markup component evaluates and renders: Examples throughout the Blazor documentation specify the private access modifier for private members. This scenario is useful for defining a component that produces a markup element that supports a variety of customizations. Select Empty project in ASP.NET Core 2.0 project templates and click on OK From ASP.NET Core template, select HTML Page, . Component parameters should be declared as auto-properties, meaning that they shouldn't contain custom logic in their get or set accessors. Only use distinct values, such as object instances or primary key values. For more information, see ASP.NET Core Razor component rendering. Declare a custom name (oncustompaste) for the event and a .NET class (CustomPasteEventArgs) to hold the event arguments for this event: Add JavaScript code to supply data for the EventArgs subclass. Other collection updates exhibit the same behavior when the @key directive attribute is used: Keys are local to each container element or component. The page's focus remains on the same index position of elements, so the focus shifts each time a person is added. Tell us how we are doing, and what we should be doing to make the things better. String data is used with the first ListGenericTypeItems2 component, and integer data is used with the second ListGenericTypeItems2 component. In a Blazor WebAssembly app, register the services as singletons in Program.cs: In a Blazor Server app, register the services as scoped in Program.cs: Use the NotifierService to update a component. This is the topic of interest now. If you want the button not to post-back, just set the button's autopostback property to false. In the wwwroot/index.html or Pages/_Layout.cshtml file, add the following