새소식

인기 검색어

Django, Vue

Vue 심화 문법

  • -

📒 Syntax 기초

 

📎 Template Syntax

 

  • 렌더링 된 DOM을 기본 Vue instance의 data에 선언적으로 바인딩 할 수 있는 HTML 기반 template syntax를 사용
    • 렌더링 된 DOM : 브라우저에 의해 보기 좋게 그려질 HTML 코드
    • HTML 기반 template syntax : HTML 코드에 직접 작성할 수 있는 문법 제공
    • 선언적으로 바인딩 : Vue instance와 DOM을 연결

 

📎 Directives 기본 구성

 

  • v-접두사가 있는 특수 속성에는 값을 할당 할 수 있음
  • directive의 역할은 표현식의 값이 변경될 때 반응적으로 DOM에 적용하는 것

 

  • `:` 을 통해 전달인자를 받을 수 있음
  • `.` 으로 표시되는 특수 접미사 - directive를 특별한 방법으로 바인딩 해야 함

 

📎 v-명령어

 

  • v-text <p v-text="message"></p>
    • Template Interpolation과 함께 가장 기본적인 바인딩 방법
    • {{ }} 와 동일한 역할
  • v-html <p v-html="html"></p>
    • RAW HTML을 표현할 수 있는 방법
    • 단, 사용자가 입력하거나 제공하는 컨텐츠에서 절대 사용금지 (XSS 공격)
  • v-show <p v-show="isActive">출력할 텍스트</p>
    • 표현식에 boolean값에 따라 element를 보여줄 것인지 결정
    • 대상 element의 display 속성을 기본 속성과 none으로 toggle
    • 요소 자체는 항상 DOM에 렌더링 됨
  • v-if <p v-if="isActive">출력할 텍스트</p>
    • v-show와 사용 방법은 동일
    • 단, 값이 false인 경우 DOM에서 사라짐
  • v-for <div v-if="(char, index) in myStr"><p>{{ index }}, {{ char }} </p></div>
    • for .. in .. 형식으로 작성
    • 반복한 데이터 타입에 모두 사용 가능
    • index를 함께 출력하고자 한다면 (char, index)형태로 사용 가능
    • 각 요소가 객체라면 dot notation으로 접근할 수 있음
    • v-for 사용시 반드시 key 속성을 각 요소에 작성

  • v-on <button v-on:click="number++">
    • `:`을 통해 전달받은 인자를 확인
    • addEventListener의 첫 번째 인자와 동일한 값들로 구성
    • 대기하고 있던 이벤트가 발생하면 할당된 표현식 실행
    • method를 통해 data 조작도 가능
    • click, keyup.enter, keyup.click etc...
  • v-model <input v-model="myMessage" type="text">
    • Vue instance와 DOM의 양방향 바인딩
    • Vue data 변경 시 v-model로 연결된 사용자 입력 element에도 적용

 


 

📒 Vue advanced

 

📎 computed

 

  • Vue instance 가 가진 options 중 하나
  • computed 객체에 정의한 함수를 페이지가 최초로 렌더링 될 때 호출하여 계산
  • methods와 차이
    • method : 호출될 때 마다 함수를 실행
                     같은 결과여도 매번 새롭게 계산
    • computed : 함수의 종속 대상의 변화에 따라 계산 여부가 결정됨
                         종속 대상이 변하지 않으면 항상 저장(캐싱)된 값을 변환

 

📎 watch

 

  • 특정 데이터의 변화를 감지하는 기능
    1. watch 객체를 정의
    2. 감시할 대상 data를 지정
    3. data가 변할 시 실행할 함수를 정의
  • 실행 함수를 Vue method로 대체 가능
  • Array, Object의 내부 요소 변경 감지를 위해서는 deep 속성 추가 필요

 

📎 filters

 

  • 텍스트 형식화를 적용할 수 있는 필터
  • interpolation 혹은 v-bind를 이용할 때 사용 가능
  • 필터는 자바스크립트 표현식 마지막에 `|` (파이프)와 함께 추가되어야 함

 


 

📒 Vue Style Guide

 

📎 Style Guide 우선순위 및 특징

 

  • A : 필수 (Essential)
    • 오류를 방지하는데 도움이 되므로 어떤 경우에도 규칙을 학습하고 준수
  • B : 적극 권장 (Strongly Recommended)
    • 규칙을 오겨도 코드는 실행되겠지만, 규칙 위반은 드물어야 함
  • C : 권장 (Recommended)
    • 일관성을 보장하도록 임의의 선택 가능
  • D : 주의 필요 (Use with Caution)
    • 잠재적 위험 특성을 고려함

 

📎 우선순위 A 중 2가지 스타일 가이드

 

  • v-for 은 항상 key와 함께 사용하기
    • 내부 컴포넌트의 상태를 일관되게 유지하기 위해 v-for에 항상 key 사용하기
    • 데이터의 예측 가능한 행동을 유지시키기 (객체 불변성)
  •  v-for 을 쓴 엘리먼트에 절대 v-if를 사용하지 말기

 

 

'Django, Vue' 카테고리의 다른 글

Vuex 심화  (0) 2023.05.12
Component 의 Data / Vuex  (0) 2023.05.11
Vue 프로젝트 구조  (0) 2023.05.10
Vue 기초 문법  (0) 2023.05.07
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.