@tagHelperPrefix
๋ํ ์ง์ ์ถ๊ฐํ์ฌ Blazor v0.6.0 ๊ตฌํ์ Razor @tagHelperPrefix
์ง์ํ์ง ์์ต๋๋ค.
์์๊ณผ RenderFragment ๊ฐ ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ๋ถ๋ชจ ๊ตฌ์ฑ ์์์ RenderFragment ์์ ์์ ๊ตฌ์ฑ ์์๋ฅผ ํฌํจํ๋ ค๊ณ ํ๋ฉด ์ปดํ์ผ ์๊ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Panel.cshtml
์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์ฑ ์์๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
<div class="panel panel-default">
<div class="panel-heading">@PanelHeader</div>
<div class="panel-body">@PanelBody</div>
</div>
@functions{
[Parameter] private RenderFragment PanelHeader { get; set; }
[Parameter] private RenderFragment PanelBody { get; set; }
}
PanelHeader.cshtml
๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<div>@Title</div>
<div>@SubTitle</div>
@functions{
[Parameter] private string Title { get; set; }
[Parameter] private string SubTitle { get; set; }
}
๊ทธ๋ฐ ๋ค์ ์๋ ์ฝ๋์ ๊ฐ์ ํ์ด์ง์์์ด ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํ์ผ ์๊ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
<Panel>
<PanelHeader>
<PanelHeader Title="some title" SubTitle="sub title"></PanelHeader>
</PanelHeader>
<PanelBody>Some content ...</PanelBody>
<Panel>
RenderFragments์์ ๊ตฌ์ฑ ์์๋ฅผ ์ฝ๊ฒ ๊ตฌ๋ถํ ์ ์๋๋ก @tagHelperPrefix
๋ํ ์ง์์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋ค์ ์์ฑํ ์ ์์ต๋๋ค.
Panel.cshtml
๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<strong i="32">@tagHelperPrefix</strong> "pre1:"
<div class="panel panel-default">
<div class="panel-heading">@PanelHeader</div>
<div class="panel-body">@PanelBody</div>
</div>
@functions{
[Parameter] private RenderFragment PanelHeader { get; set; }
[Parameter] private RenderFragment PanelBody { get; set; }
}
PanelHeader.cshtml
๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<strong i="37">@tagHelperPrefix</strong> "pre2:"
<div>@Title</div>
<div>@SubTitle</div>
@functions{
[Parameter] private string Title { get; set; }
[Parameter] private string SubTitle { get; set; }
}
๋ง์ง๋ง์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ ๋ฐ ๋ถ๋ชจ ๊ตฌ์ฑ ์์๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
<pre1:Panel>
<PanelHeader>
<pre2:PanelHeader Title="some title" SubTitle="sub title"></pre2:PanelHeader>
</PanelHeader>
<PanelBody>Some content ...</PanelBody>
<pre1:Panel>
์ด ์ ์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๊ตฌ์ฑ ์์ ๋ฐ ๋งค๊ฐ ๋ณ์๊ฐ .NET ์ ํ ๋ฐ ์์ฑ๊ณผ ๋์ผํ ์ด๋ฆ ํ์ธ ๊ท์น์ ๋ฐ๋ฅด๊ธฐ์ํ ๊ฒ์ด๋ฏ๋ก @tagHelperPrefix
๋ํ ์ง์์ ์ถ๊ฐ ํ ๊ณํ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ตฌ์ฑ ์์ ์ด๋ฆ์ ๋ค์ ์คํ์ด์ค๋ก ํ์ ํด์ผํ๋ ๊ฒฝ์ฐ ์ด๋ฆ ์ ํ <Namespace.MyComponent />
์ธ์๋ ๋ค์ ์คํ์ด์ค๋ฅผ ์ง์ ํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค. ์์ง ๊ตฌํ๋์ง ์์์ง๋ง https://github.com/aspnet/Blazor/issues/1315์์ ์ถ์ ํฉ๋๋ค
์ฆ, ๊ทํ์ ์๋๋ฆฌ์ค๋ ํ์ฌ ๊ทธ๋๋ก ์๋ํด์ผํ๋ฉฐ, ๊ทธ๋ ์ง ์๋ค๋ ์ฌ์ค์ ๋ฒ๊ทธ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฆ์ด ๊ฐ์ ์์ฑ๊ณผ ์ ํ์ ๊ฐ๋ ๊ฒ๊ณผ ๋์ผํ๋ฏ๋ก ๊ด์ฐฎ์ต๋๋ค.
์ค, ํ๋ฅญ ํ ๊ฒ์ด์ง๋ง ๋์์ ๋ชจ๋ ๋ค์ ์คํ์ด์ค๋ฅผ ์
๋ ฅํ๋ ๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฝ๋๋ค. ์๋ง๋ ๊ตฌํ ๋ ๋ C #์์ using
๋ฌธ๊ณผ ๊ฐ์ ๊ฒ์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
@fayezmm ๊ทธ๋, ์ข์ ์์์ Razor์ ์ด๋ฏธ @using
์ง์๋ฌธ์ด ์๋ค๋ ๊ฒ์
๋๋ค.