# Blazor Blazor apps are based on *components*. A **component** in Blazor is an element of UI, such as a page, dialog, or data entry form. Components are .NET C# classes built into .NET assemblies that: - Define flexible UI rendering logic. - Handle user events. - Can be nested and reused. - Can be shared and distributed as Razor class libraries or NuGet packages.   The component class is usually written in the form of a Razor markup page with a `.razor` file extension. Components in Blazor are formally referred to as *Razor components*. ## Project Structure & Important Files ### Blazor Server Project Stucture ```txt Project |-Properties | |- launchSettings.json | |-wwwroot --> static files | |-css | | |- site.css | | |- bootstrap | | | |- favicon.ico | |-Pages | |- Page.cshtml | |- Page.cshtml.cs | |- Component.razor | |- Index.razor | |- ... | |-Shared | |- MainLayout.razor | |- MainLayout.razor.css | |- ... | |- _Imports.razor --> @using imports |- App.razor --> component root of the app | |- appsettings.json --> application settings |- Program.cs --> App entrypoint |- Startup.cs --> services and middleware configs ``` ### Blazor WASM Project Structure ```txt Project |-Properties | |- launchSettings.json | |-wwwroot --> static files | |-css | | |- site.css | | |- bootstrap | | | |- index.html | |- favicon.ico | |-Pages | |- Component.razor | |- Index.razor | |- ... | |-Shared | |- MainLayout.razor | |- MainLayout.razor.css | |- ... | |- _Imports.razor --> @using imports |- App.razor --> component root of the app | |- appsettings.json --> application settings |- Program.cs --> App entrypoint ``` ### `App.razor` ```cs Sorry, there's nothing at this address. ``` ## Components (`.razor`) ```cs @page "/route" // insert component into page @code { // component model (Properties, Methods, ...) [Parameter] // use prop as HTML attribute purblic Type Property { get; set; } = defaultValue; } ```
Sorry, there's nothing at this address.