๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Angular

๐Ÿ Angular ng-content

by frontChoi 2022. 10. 26.
๋ฐ˜์‘ํ˜•

๐Ÿ˜€ ng-content?

vue์—์„œ๋Š” slot(์Šฌ๋กฏ)์ด ์žˆ๋‹ค๋ฉด angular์—์„œ๋Š” ng-content๊ฐ€ ์žˆ๋‹ค. ์‚ฌ์‹ค angular๊ฐ€ ๋จผ์ € ์„ธ์ƒ์— ๋‚˜์™”๊ธฐ๋•Œ๋ฌธ์— vue๊ฐ€ ๋”ฐ๋ผ ํ–ˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋ ๊ฒƒ๊ฐ™๋‹ค. ng-content๋Š” ๋ณดํ†ต css๋Š” ๊ฐ™์œผ๋‚˜, ์•ˆ์˜ ๋‚ด์šฉ๋ฌผ(ํ…์ŠคํŠธ)๊ฐ€ ๋‹ค๋ฅผ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์žฌํ™œ์šฉ์„ฑ์ด ๋†’๋‹ค.

 

๐Ÿ™„ ng-content๋Š” ์–ด๋–ค๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๋Š”๊ฐ€?

ํ™”๋ฉด๋งˆ๋‹ค ์ปดํผ๋„ŒํŠธ ๊ตฌ์กฐ๋Š” ๋™์ผํ•˜๋‚˜, ์•ˆ์˜ ๋‚ด์šฉ์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š”๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

 

 

๐Ÿ˜ ng-content์œผ๋กœ header,main, footer ๋งŒ๋“ค์–ด๋ณด๊ธฐ

์ด๋ฒˆ์—๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ header, main, footer์„ ng-content์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•ด๋ณด์ž. 

๊ตฌ์ƒ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

 

 ์ฝ”๋“œ(app-content.component.html)

<ng-content select="header"></ng-content>
<ng-content select="main"></ng-content>
<ng-content select="footer"></ng-content>

์œ„ ์ฝ”๋“œ ์ฒ˜๋Ÿผ ์ถ”์ƒํ™” ์‹œํ‚ค๊ณ  ์‹ถ์€ ๋Œ€์ƒ๋“ค์„ ng-content์œผ๋กœ ๊ฐ์‹ธ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  app-content ์ปดํผ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์—์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•œ๋‹ค.

<app-content>
  <header>header</header>
  <main>
    <article>
      <h1>๊ธฐ์‚ฌ1</h1>
      <p>
        Lorem, ipsum dolor sit amet consectetur adipisicing elit. Aut a
        consequuntur nobis vel doloremque culpa ipsum maxime eaque, omnis
        similique dicta corrupti fugit vitae cupiditate! Animi iste corrupti
        fugiat maiores?
      </p>
    </article>
    <article>
      <h1>๊ธฐ์‚ฌ2</h1>
      <p>
        Lorem, ipsum dolor sit amet consectetur adipisicing elit. Aut a
        consequuntur nobis vel doloremque culpa ipsum maxime eaque, omnis
        similique dicta corrupti fugit vitae cupiditate! Animi iste corrupti
        fugiat maiores?
      </p>
    </article>
    <article>
      <h1>๊ธฐ์‚ฌ3</h1>
      <p>
        Lorem, ipsum dolor sit amet consectetur adipisicing elit. Aut a
        consequuntur nobis vel doloremque culpa ipsum maxime eaque, omnis
        similique dicta corrupti fugit vitae cupiditate! Animi iste corrupti
        fugiat maiores?
      </p>
    </article>
  </main>
  <footer>footer</footer>
</app-content>

 

 

์ด ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

์ปดํผ๋„ŒํŠธ ๋Œ€์‘

์ž์‹ ์ปดํผ๋„ŒํŠธ ๋ถ€๋ชจ์ปดํผ๋„ŒํŠธ
ng-content select="header" header ํƒœ๊ทธ
ng-content select="main" main ํƒœ๊ทธ
ng-content select="footer" footer ํƒœ๊ทธ

๋ถ€๋ชจ์ปดํผ๋„ŒํŠธ์—์„œ ์ž์‹์ปดํผ๋„ŒํŠธ์˜ ๋‚ด์šฉ์„ ์ฑ„์›Œ์ค€๋‹ค.

 

 

๐Ÿ˜ ๊ฒฐ๊ณผํ™”๋ฉด

๋ฐ˜์‘ํ˜•

'Angular' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๐Ÿ˜“ngrx๋ฅผ ์ด์šฉํ•˜์—ฌ ์—๋Ÿฌ๋‚œ ํŒŒ์ผ์ฒ˜๋ฆฌ  (0) 2022.07.30
Ngrx ๋„์ž…  (0) 2022.06.16
Rxjs?  (0) 2022.02.19
๐ŸฅทAngular์˜ ๋‹ค๊ตญ์–ด ๊ด€๋ฆฌ  (0) 2021.11.07

๋Œ“๊ธ€