Directives

Vue ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ Directives (์ง€์‹œ๋ฌธ) ์€ vue ์—˜๋ฆฌ๋จผํŠธ์— ์ ์šฉ๋˜๋Š” ํŠน๋ณ„ํ•œ ์†์„ฑ์ด๋‹ค.

Vue JS ๊ณต์‹๋ฌธ์„œ์—์„œ๋„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

v-text

vue ๋‚ด๋ถ€๊ฐ’์ด vue ์—˜๋ฆฌ๋จผํŠธ ๋ณ€์ˆ˜๋กœ ์ง€์ •๋œ๋‹ค.

v-html

v-show

v-if

v-else

v-else-if

v-for

v-on

๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ง€์‹œ๋ฌธ์ด๋‹ค. @ ์œผ๋กœ ์ถ•์•ฝํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

  • .stop
    • event.stopPropagation() ํ˜ธ์ถœ
  • .prevent
    • event.preventDefault() ํ˜ธ์ถœ
  • .capture
    • ์บก์ณ๋ชจ๋“œ์˜ ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ (?)
  • .self
    • ์ด ์—˜๋ฆฌ๋ฉ˜ํŠธ์—์„œ event๊ฐ€ dispatched ๋์„ ๋•Œ๋งŒ ํŠธ๋ฆฌ๊ฑฐ
  • .{keyCode | keyAlias}
    • ํŠน์ • ํ‚ค์—์„œ๋งŒ trigger
  • .native
    • root element์˜ native event๋ฅผ listen (?)
  • .once
    • ํ•œ๋ฒˆ๋งŒ ํŠธ๋ฆฌ๊ฑฐ!
  • .left
    • ๋งˆ์šฐ์Šค ์™ผ์ชฝํด๋ฆญ์—๋งŒ ํŠธ๋ฆฌ๊ฑฐ
  • .right
    • ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝํด๋ฆญ์—๋งŒ ํŠธ๋ฆฌ๊ฑฐ
  • .middle
    • ๋งˆ์šฐ์Šค ๊ฐ€์šด๋ฐํด๋ฆญ์—๋งŒ ํŠธ๋ฆฌ๊ฑฐ
  • .passive
    • attacheds a DOM event with {passive: true}

v-bind

v-on ๊ณผ ๋”๋ถˆ์–ด ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” directive ์ด๋‹ค. : ์ถ•์•ฝํ•ด์„œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

  • .prop
    • vue ์†์„ฑ๋Œ€์‹  DOM ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ฐ”์ธ๋”ฉํ•ด์ค€๋‹ค.
  • .camel
    • kebab-case ์†์„ฑ์„ camel-case ๋กœ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค. (app-blog -> appBlog)
  • .sync

v-model

๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์‹œ์— ์‚ฌ์šฉํ•˜๋ฉฐ <input> <select> <textarea> ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

modifiers ๋Š” ์•„๋ž˜ 3๊ฐ€์ง€ ์ด๋‹ค.

  • .lazy
    • input ๋Œ€์‹ ์— change event ๋ฅผ listen ํ•œ๋‹ค.
    • ์ž…๋ ฅํ•  ๋•Œ ๋งˆ๋‹ค ๊ฐ’์ด ๋ฐ”์ธ๋”ฉ๋˜์ง€ ์•Š๊ณ  ๋‚˜์ค‘์— ๋ณ€๊ฒฝ
  • .number
    • ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
  • .trim
    • ์ž…๋ ฅ๊ฐ’์ด ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•œ๋‹ค.

v-pre

์—˜๋ฆฌ๋จผํŠธ์˜ compile ์„ ๊ฑด๋”๋›ด๋‹ค. `` ์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ ๊ฐ€๋Šฅํ•˜๋‹ค.

v-cloak

[v-cloak]{ display: none } ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉฐ js ๋ฅผ ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ๊นŒ์ง€ un-compiled ๋œ html ์„ ๋ชจ๋‘ ์ˆจ๊ฒจ์ค€๋‹ค.

v-once

๋ทฐ ์—˜๋ฆฌ๋จผํŠธ ํ˜น์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•œ๋ฒˆ๋งŒ ๋žœ๋”ํ•œ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

https://seulcode.tistory.com/264