What's New in рдмреНрд▓реЗрдЬрд╝рд░ 0.7.0

рдмреНрд▓реЗрдЬрд╝рд░ 0.7.0 рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИ! рдпрд╣ рдЕрдкрдбреЗрдЯ ADRs (рдкреВрд░реНрд╡рдЬ-рд╡рдВрд╢рдЬ рд░рд┐рд╢реНрддреЛрдВ) рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдордиреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдЬреЛрдбрд╝реЗ рд╣реИрдВред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА!

Blazor рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛: .NET рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ WebAssembly рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдЖрдзреБрдирд┐рдХ рд╕рд┐рдВрдЧрд▓-рдкреЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдПрд╕рдкреАрдП) рдХреЗ рд╕рднреА рдлрд╛рдпрджреЗ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХреЙрдорди рдХреЛрдб рддрдХ рд╢реБрд░реБрдЖрдд рд╕реЗ рдЕрдВрдд рддрдХ .NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред [ рез ]



рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдп рдпрд╛ "рдмреНрд▓реЗрдЬрд╝рд░ рдХреНрдпрд╛ рд╣реИ?" ред

рдпрд╣рд╛рдБ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ рдмреНрд▓реЗрдЬрд╝рд░ 0.7.0:

  • рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рди рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░
  • рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ

рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА Blazor 0.7.0 рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдмреНрд▓реЗрдЬрд╝рд░ 0.7.0 рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

  1. .NET рдХреЛрд░ 2.1 рдПрд╕рдбреАрдХреЗ (2.1.500 рдпрд╛ рдмрд╛рдж рдореЗрдВ)ред
  2. рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ 2017 (15.9 рдпрд╛ рдмрд╛рдж рдореЗрдВ) ASP.NET рдХреЗ рд╕рд╛рдеред
  3. рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рд╕реЗ рдирд╡реАрдирддрдо рдмреНрд▓реЗрдЬрд╝рд░ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рд╡рд┐рд╕реНрддрд╛рд░ ред
  4. рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд░рдВрдЧреАрди рдЯреЗрдореНрдкрд▓реЗрдЯ:

dotnet new -i Microsoft.AspNetCore.Blazor.Templates 

рдЖрдк Blazor рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ рдореИрдиреБрдЕрд▓ blazor.net рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмреНрд▓реЗрдЬрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ 0.7.0


рдмреНрд▓реЗрдЬрд╝рд░ 0.6.0 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ 0.7.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  • рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ рд╕реЗрдЯ рдХрд░реЗрдВред
  • рдЕрдкрдиреЗ Blazor рдкреИрдХреЗрдЬ рдФрд░ .NET CLI рдЯреВрд▓ рд╕рдВрджрд░реНрдн рдХреЛ 0.7.0 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдЕрджреНрдпрддрди рдмреНрд▓реЗрдЬрд╝рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:

 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <RunCommand>dotnet</RunCommand> <RunArguments>blazor serve</RunArguments> <LangVersion>7.3</LangVersion> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Blazor.Browser" Version="0.7.0" /> <PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.7.0" /> <DotNetCliToolReference Include="Microsoft.AspNetCore.Blazor.Cli" Version="0.7.0" /> </ItemGroup> </Project> 

рдпрд╣ рдмрд╛рдд рд╣реИ! рдЕрдм рдЖрдк рдмреНрд▓реЗрдЬрд╝рд░ рдХреА рдирд╡реАрдирддрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рди рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░


рдмреНрд▓реЗрдЬрд╝рд░ рдШрдЯрдХ рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдШрдЯрдХ рдХреЛ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдШрдЯрдХ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рдореВрд▓ рдШрдЯрдХ рд╕реЗ рдмрд╛рд▓ рдШрдЯрдХ рддрдХ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреВрд░реНрд╡рдЬ рдШрдЯрдХ рд╕реЗ рд╡рдВрд╢рдЬ рдШрдЯрдХ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЙрдирдХреЗ рдмреАрдЪ рдХрдИ рдкрд░рддреЗрдВ рд╣реЛрддреА рд╣реИрдВред рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рди рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдкреВрд░реНрд╡рдЬреЛрдВ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рд╕рднреА рд╡рдВрд╢рдЬреЛрдВ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рд╡реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдордиреНрд╡рдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдШрдЯрдХ рд╕реЗ рдШрдЯрдХ рддрдХ рдЙрдкрдпреБрдХреНрдд рд╢реИрд▓реА рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдердХрд╛рдК рдФрд░ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рддрд╛-рдкрд┐рддрд╛ рдШрдЯрдХ рдПрдХ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд╖рдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╡рдВрд╢рдЬ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ ThemeInfo рд╡рд░реНрдЧ рдЙрд╕ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдмрддрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдШрдЯрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╕рднреА рдмрдЯрди рд╕рдорд╛рди рджрд┐рдЦреЗрдВ:

 public class ThemeInfo { public string ButtonClass { get; set; } } 

рдореВрд▓ рдШрдЯрдХ CascadingValue рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред CascadingValue рдШрдЯрдХ рдШрдЯрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдПрдХ рд╕рдмрдЯреНрд░реА рд▓рдкреЗрдЯрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдПрдХрд▓ рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдмрдЯреНрд░реА рдХреЗ рднреАрддрд░ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рд▓реЗрдЖрдЙрдЯ рдмреЙрдбреА рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рд╕реВрдЪрдирд╛ рдХреЛ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 @inherits BlazorLayoutComponent <div class="sidebar"> <NavMenu /> </div> <div class="main"> <div class="top-row px-4"> <a href="http://blazor.net" target="_blank" class="ml-md-auto">About</a> </div> <CascadingValue Value="@theme"> <div class="content px-4"> @Body </div> </CascadingValue> </div> @functions { ThemeInfo theme = new ThemeInfo { ButtonClass = "btn-success" }; } 

рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдШрдЯрдХ [рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧрдкреИрд░реЗрдЯ] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХрд╛рдЙрдВрдЯрд░ рдШрдЯрдХ рдХреЛ рдПрдХ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдереАрдордЗрдиреНрдлреЛ рдХреЗ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рди рд╕реЗ рдмрд╛рдВрдзрддрд╛ рд╣реИ, рдЬреЛ рддрдм рдмрдЯрди рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 @page "/counter" <h1>Counter</h1> <p>Current count: @currentCount</p> <button class="btn @ThemeInfo.ButtonClass" onclick="@IncrementCount">Click me</button> @functions { int currentCount = 0; [CascadingParameter] protected ThemeInfo ThemeInfo { get; set; } void IncrementCount() { currentCount++; } } 

рдЬрдм рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдирдИ рд╢реИрд▓реА рд▓рд╛рдЧреВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ:



рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рднреА рдШрдЯрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЯреИрдмрд╕реЗрдЯ рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдЯреИрдм рдШрдЯрдХ рд╣реИрдВ:

 <TabSet> <Tab Title="First tab"> <h4>First tab</h4> This is the first tab. </Tab> @if (showSecondTab) { <Tab Title="Second"> <h4>Second tab</h4> You can toggle me. </Tab> } <Tab Title="Third"> <h4>Third tab</h4> <label> <input type="checkbox" bind=@showSecondTab /> Toggle second tab </label> </Tab> </TabSet> 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЯреИрдм рдЪрд╛рдЗрд▓реНрдб рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯреИрдмрд╕реЗрдЯ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рдмрд╕ рдЯреИрдмрд╕реЗрдЯ рдЪрд╛рдЗрд▓реНрдб рдХрдВрдЯреЗрдВрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЯреИрдмрд╕реЗрдЯ рдХреЛ рдЕрднреА рднреА рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╣реЗрдбрд░ рдФрд░ рд╕рдХреНрд░рд┐рдп рдЯреИрдм рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХреЗред рдЗрд╕ рд╕рдордиреНрд╡рдп рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, TabSet рдШрдЯрдХ рдЦреБрдж рдХреЛ рдПрдХ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рдЯреИрдм рдШрдЯрдХ рдХреЗ рдШрдЯрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдорд┐рд▓рд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

TabSet.cshtml рдореЗрдВ:

 <!-- Display the tab headers --> <CascadingValue Value=this> <ul class="nav nav-tabs"> @ChildContent </ul> </CascadingValue> 

рдпрд╣ рдкреИрд░реЗрдВрдЯ рдЯреИрдм рдШрдЯрдХреЛрдВ рдХреЛ рдЯреИрдмреНрд╕реЗрдЯ рдХреЛ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЦреБрдж рдХреЛ рдЯреИрдмрд╕реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордиреНрд╡рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдЯреИрдм рд╕рдХреНрд░рд┐рдп рд╣реИ:

Tab.cshtml рдореЗрдВ:

 [CascadingParameter] TabSet ContainerTabSet { get; set; } 


рдпрд╣рд╛рдВ рдкреВрд░рд╛ рдЯреИрдмрд╕реЗрдЯ рдирдореВрдирд╛ рджреЗрдЦреЗрдВред

рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ


Blazor 0.5.0 рдореЗрдВ, рд╣рдордиреЗ Blazor рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕ рдкреНрд░рдпреЛрдЧ рдиреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ .NET рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рдПрдХ рдЦрддрд░рдирд╛рдХ рдЕрдиреБрднрд╡ рдерд╛ред рдЕрдм рдЖрдк рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдбреАрдмрдЧрд┐рдВрдЧ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi430166/


All Articles