Add support for Razor templates
Adds support for Razor templates and RenderFragment<T>. Razor templates are a little-known Razor feature that looks like: ``` @<tag>....<tag> ``` It's so little known that it's not even covered in our docs, but it's been around for many many years. This features hasn't been implemented until now for Blazor, and this feature brings it back as a build building block for templated components (more to come). In Blazor land a template like: ``` @{ RenderFragment<Person> template = @<div>@item.Name</div>; } ``` complies to code like: ``` RenderFragment<Person> template = (__builder, item) => { __builder.OpenElement(...); ... __builder.CloseElement(...); } ``` Since the declaration always has a generic type parameter inside, it needs to be in a context where the type is known.. ie: not with `var`. See tests for ways to consume templates. NOTE: There are the following caveats for templates - Templates require a single root element. - Templates don't work in the `@functions { }` block These limitations are baked into the core of Razor and will take a while for us to address (v3.0).
显示
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BindLoweringPass.cs 9 个添加, 0 个删除...ft.AspNetCore.Blazor.Razor.Extensions/BindLoweringPass.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorDesignTimeNodeWriter.cs 58 个添加, 3 个删除...ore.Blazor.Razor.Extensions/BlazorDesignTimeNodeWriter.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorDiagnosticFactory.cs 19 个添加, 8 个删除...etCore.Blazor.Razor.Extensions/BlazorDiagnosticFactory.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorExtensionInitializer.cs 3 个添加, 0 个删除...ore.Blazor.Razor.Extensions/BlazorExtensionInitializer.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorNodeWriter.cs 3 个添加, 0 个删除...ft.AspNetCore.Blazor.Razor.Extensions/BlazorNodeWriter.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorRuntimeNodeWriter.cs 48 个添加, 3 个删除...etCore.Blazor.Razor.Extensions/BlazorRuntimeNodeWriter.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorTemplateTargetExtension.cs 16 个添加, 0 个删除....Blazor.Razor.Extensions/BlazorTemplateTargetExtension.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/EventHandlerLoweringPass.cs 16 个添加, 1 个删除...tCore.Blazor.Razor.Extensions/EventHandlerLoweringPass.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/ScopeStack.cs 39 个添加, 9 个删除...icrosoft.AspNetCore.Blazor.Razor.Extensions/ScopeStack.cs
- src/Microsoft.AspNetCore.Blazor.Razor.Extensions/TemplateDiagnosticPass.cs 60 个添加, 0 个删除...NetCore.Blazor.Razor.Extensions/TemplateDiagnosticPass.cs
- src/Microsoft.AspNetCore.Blazor/RenderFragment.cs 10 个添加, 1 个删除src/Microsoft.AspNetCore.Blazor/RenderFragment.cs
- src/Microsoft.AspNetCore.Blazor/RenderFragmentExtensions.cs 24 个添加, 0 个删除src/Microsoft.AspNetCore.Blazor/RenderFragmentExtensions.cs
- src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs 20 个添加, 0 个删除...crosoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs
- test/Microsoft.AspNetCore.Blazor.Build.Test/ComponentRenderingRazorIntegrationTest.cs 53 个添加, 0 个删除...azor.Build.Test/ComponentRenderingRazorIntegrationTest.cs
- test/Microsoft.AspNetCore.Blazor.Build.Test/DesignTimeCodeGenerationTest.cs 217 个添加, 1 个删除...NetCore.Blazor.Build.Test/DesignTimeCodeGenerationTest.cs
- test/Microsoft.AspNetCore.Blazor.Build.Test/RenderingRazorIntegrationTest.cs 71 个添加, 7 个删除...etCore.Blazor.Build.Test/RenderingRazorIntegrationTest.cs
- test/Microsoft.AspNetCore.Blazor.Build.Test/RuntimeCodeGenerationTest.cs 216 个添加, 0 个删除...AspNetCore.Blazor.Build.Test/RuntimeCodeGenerationTest.cs
- test/Microsoft.AspNetCore.Blazor.Build.Test/TemplateRazorIntegrationTest.cs 127 个添加, 0 个删除...NetCore.Blazor.Build.Test/TemplateRazorIntegrationTest.cs
- test/Microsoft.AspNetCore.Blazor.Build.Test/TestFiles/DesignTimeCodeGenerationTest/RazorTemplate_AsComponentParameter/TestComponent.codegen.cs 60 个添加, 0 个删除...zorTemplate_AsComponentParameter/TestComponent.codegen.cs
- test/Microsoft.AspNetCore.Blazor.Build.Test/TestFiles/DesignTimeCodeGenerationTest/RazorTemplate_AsComponentParameter/TestComponent.ir.txt 38 个添加, 0 个删除...t/RazorTemplate_AsComponentParameter/TestComponent.ir.txt
加载中
想要评论请 注册 或 登录