티스토리 뷰

Vue

[Vue] 3. Basic Syntax

개발자 뭄뭄 2022. 11. 26. 05:08
반응형

1. Template syntax


  • 렌더링 된 DOM을 기본으로 Vue instance data에 선언적으로 바인딩 할 수 있는 HTML 기반 template syntax를 사용
  • Template Interpolation : 가장 기본적인 바인딩(연결) 방법
    • {{}} 로 표기
    • HTML을 일반텍스트로 표현
  • Raw HTML
    • v-html directive을 사용하여 data와 바인딩
    • HTML의 기본 속성이 아닌 Vue가 제공하는 특수 속성의 값으로 data를 작성

2. Directives


1. 기본 구성

  • v-접두사가 있는 특수 속성에는 값을 할당할 수 있음
    • 값에는 JS 표현식을 작성 할 수 있음
  • directive의 역할은 표현식의 값이 변경될 때 반응적으로 DOM에 적용하는 것
  • 각각의 instance들은 연결된 DOM element에만 영향을 미친다
  • ‘:’ 을 통해서 전달인자를 받을 수 있다.
  • ‘.’ 으로 표시되는 특수접미사 -directive를 특별한 방법으로 바인딩 해야 함.

2. v-text

  • 가장 기본적인 바인딩 방법
  • {{}} 와 동일한 역할. (정확히 동일한 것은 아님)

3. v-html

  • RAW HTML을 표현할 수 있는 방법
  • 단, 사용자가 입력하거나 제공하는 컨텐츠에는 절대 사용 금지
    • XSS 공격 참고

4. v-show

  • 표현식에 작성된 값에 따라 element를 보여 줄 것인지 결정
    • boolean 값이 변경 될 때마다 반응한다.
  • 대상 element의 display 속성을 기본 속성과 none으로 toggle 한다.
  • isActive = false : 화면에만 사라졌을 뿐, DOM에는 존재한다. (렌더링 된다.)

5. v-if

  • v-show와 사용방법은 동일. isActive의 값이 변경될 때 반응
  • isActive = false : DOM에서 사라짐
v-showv-if
초기 비용초기 렌더링 비용 높음초기 렌더링 비용 낮음
toggle 비용display 속성 변경으로 표현 여부를 판단하므로 렌더링 후 toggle 비용은 적음표현식 값이 자주 변경되는 경우 잦은 재 렌더링으로 비용이 증가할 수 있음.

6. v-for

  • v-for = “()… in …” 형식으로 작성
  • index를 함께 출력하고자 한다면 (char, index) 형태로 사용 가능
  • 배열도 문자열과 동일하게 사용 가능.
    • 각 요소가 객체라면 dot notation으로 접근할 수 있음.
v-for 사용 시 반드시 key 속성을 각 요소에 작성해야 한다.
  • 특수 속성 key
    • 주로 v-for directive 작성 시 사용
    • vue 화면 구성 시 이전과 달라진 점을 확인하는 용도로 확인한다.

      ⇒ key 가 중복(x)

    • 각 요소가 고유한 값을 가지고 있지 않다면 생략할 수 있다.

7. v-on

  • “:” 을 통해 전달받은 인자를 확인
  • addEventListener의 첫번째 인자와 동일한 값들로 구성
  • 이벤트가 발생하면 할당된 표현식을 진행한다.
  • @ : shortcut

8. v-bind

  • HTML의 기본 속성에 Vue data를 연결
  • ‘:’ shortcut 을 제공한다.

9. v-model

  • Vue instance와 DOM의 양방향 바인딩
  • Vue data 변경 → v-model로 연결된 사용자 입력 element에도 적용


Uploaded by N2T

반응형

'Vue' 카테고리의 다른 글

[Vue] 6. Vue CLI  (0) 2022.11.26
[Vue] 5. Vue advanced  (0) 2022.11.26
[Vue] 4. Style Guide  (0) 2022.11.26
[Vue] 2. Vue?  (0) 2022.11.26
[Vue] 1. Front-end 란 무엇인가?  (0) 2022.11.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함