반응형

2024/01 27

12. 디렉티브 (v-text, v-cloak, v-once, v-memo) | 디렉티브 구성

디렉티브 (directives) 디렉티브는 앞에서 말씀드렸던 것처럼 v- 접두사가 있는 특수 속성입니다. 그리고 디렉티브는 그대로 직역하면 지시를 뜻 합니다. 즉, 디렉티브는 기능상에서 중요한 역할인 컴포넌트 (또는 DOM요소) 에게 "~~하게 작동하라" 하고 지시를 해주는 지시문을 말합니다. Vue는 여러내장 디렉티브를 제공합니다 v-text 요구값 : string 설명 : 엘리먼트를 업데이트 합니다. textContent의 일부를 업데이트 해야하는 경우 버스태시 보간법을 사용해야 합니다. v-cloak 표현식을 요구하지 않습니다 사용방법 : 이 디렉티브는 연결된 컴포넌트 인스턴스가 컴파일을 완료 할 때 까지 엘리먼트에 남아있습니다. [v-cloack] {display : none} 과 같은 CSS 규..

11. 목록 렌더링 (v-for)

v-for v-for 디렉티브를 사용하여 배열인 목록을 렌더링 할 수 있습니다. v-for="item in items" 문법을 사용해서 배열에서 항목을 순차적으로 할당합니다 v-for="(item, index) in items" 문법을 사용해서 배열 인덱스를 가져올 수 있습니다 항목을 나열할 때 각 :key 속성에는 고유한 값을 지정해야 합니다 v-for 객체 v-for를 사용하여 객체의 속성을 반복 할 수도 있습니다

10. 조건부 렌더링 (v-if, v-else, v-else-if, v-show, v-if 와 v-for)

v-if v-if 디렉티브는 조건부로 블록을 렌더링 할 때 사용한다. v-if 안의 조건이 true일때 보이고 false일때 보이지 않는다. v-else v-else 디렉티브는 v-if가 거짓(false) 일 때 렌더링 하는 블록이다 v-else-if v-else-if는 이름에서 알 수 있듯이 v-if에 대한 else if 블록이다. 여러 조건을 연결 할 수 있다. 여러개의 HTML 요소를 v-if 디렉티브로 연결하고 싶다면 을 사용할 수 있습니다. template으로 조건을 거는건 실무에서 자주 사용된다. v-show 요소를 조건부로 표시하는 또 다른 옵션은 v-show 디렉티브 이다. v-if 대 v-show v-if는 실제로 렌더링 됩니다. 전환 할 때 블록 내부의 컴포넌트들이 제거되고 다시 생성되..

9. class와 style 바인딩

객체 바인딩 클래스를 동적으로 바인딩하기 위해서는 :class(v-bind : class)를 사용할 수 있다. active는 style이 정의되어 있는 class이고 isActive는 true, false 값이 저장되어 있는 변수다. 'text-danger' 는 가운데에 - 가 있어서 '' 로 감쌌을뿐 똑같이 style이 정의되어 있는 class이고 hasError는 true, false 값이 저장되어 있는 변수다. Class 바인딩은 이렇게 여러 class 사용이 가능하다. 위 예시처럼 v-bind:class 디렉티브는 일반 class 속성과 공존할 수 있다. 그리고 객체를 반환하는 computed에 바인딩 할 수도 있습니다. 만약에 바인딩할 데이터가 많다면 객체로 선언해서 사용할수 있다. active..

8. computed

템플릿 문법 {{ }}은 간단히 사용하면 매우 편리하지만 템플릿 표현식 내 코드가 길어질 경우 가독성이 떨어지고 유지보수가 어려워진다. 이럴때 사용하는게 computed 이다. arrow 함수임으로 명령어가 하나일때는 retrun과 중괄호 생략이 가능하다. computed가 아닌 메서드로도 구현 가능하지만, 메서드이기 때문에 템플릿 문법에서 실행할때 () 괄호를 넣어줘야한다. 결과는 똑같지만 computed 가 성능면에서 비용이 적게 든다. 왜냐하면 computed는 안에서 계산된 값이 캐시되기 때문이다. 같은 컴포넌트 안에서 existLecture, hasLecture를 여러번 호출해보자. method는 두번 호출되고 computed는 한번만 호출된다. 그 이유는 computed는 한번 계산된 결과를 ..

16. ESLint / Prettier 설정 (Quasar, Vue3)

코드 포맷팅 설정 ESList / Prettier 1단계 : VSCode 편집기 설정 ctrl + , 단축키로 편집기 세팅화면 확인 가능 Format On Save 체크 해제 Default Formatter : ESLint 선택 Tab Size : 2로 변경 format on save 체크되어 있으면 안된다 tab Size 2로 설정 2단계 : Package.json의 devDependencies에 라이브러리를 세팅한다 라이브러리 설치로 VSCode 편집기에서 Plugin으로 Prettier를 사용하는 것이 아닌 설정 파일로 Prettier를 사용할 수 있게 된다. 추후 팀원이 추가되더라도 동일한 포맷팅 유지가 가능해진다. "devDependencies": { "@quasar/app-vite": "^1...

7. 반응형 기초 (reactive, ref, toRefs, toRef, readonly)

reactive 함수는 객체나 배열같은 레퍼런스 타입을 반응형 객체로 만들 수 있다. String, number, boolean 이러한 프리미티브한 타입을 반응형 객체로 만들려면 어떻게 해야할까? primitive 타입에 reactive 함수를 쓰면 반응형으로 동작하지 않는다. reactive 함수는 객체나 배열같은 reference 타입의 반응형 상태, 반응형 객체를 선언하는 함수이기 때문이다. console.log 로 찍어보면 메시지는 그냥 string이다. 자바스크립트 언어의 특성을 보면 당연한 결과다. 아에 값 자체를 새로 바꿔버리기 때문이다. retrun시킨 message (콧수염괄호 안에 있는 message) 와 addMessage() 함수 안에 있는 message 두개의 상태를 서로 동기화 ..

6. 템플릿 문법 (텍스트 보간법, v-once, v-html, v-bind)

텍스트 보간법 데이터 바인딩의 가장 기본형태인 콧수염 괄호를 사용하는것 입니다. 콧수염괄호를 사용하면 해당 문법은 컴포넌트 인스턴스의 message 값으로 대체 됩니다. message 속성이 변경될 때 마다 갱신됩니다. v-once 데이터가 변경되어도 갱신(반응)되지 않는 일회성 보간을 수행할 수 있다. 문자열 : {{ message }} v-html html을 출력하려면 v-html 디렉티브를 사용해야 합니다 텍스트 : {{ rawHtml }} v-html : 웹사이트에서 임의의 HTML을 동적으로 렌더링하면 XSS 취약점으로 쉽게 이어질수 있고 이는 위험할 소지가 있습니다. html 보간법은 반드시 신뢰할 수 있는 콘텐츠에서만 사용하고 사용자가 제공한 콘텐츠에서는 절대 사용하면 안됩니다. XSS 취약..

5. setup()

Setup() setup() 함수(hook)은 CompositionAPI 사용을 위한 진입점 역할을 합니다 그리고 setup 함수는 컴포넌트 인스턴스가 생성되기 전에 실행됩니다. 기본 사용 방법입니다. 첫번째 매개변수로는 props가 넘어옵니다 두번째 매개변수로는 Context가 넘어옵니다. Context에서는 attrs, slot, emit, expore 속성이 있습니다. Context의 속성에 관해서는 다른 포스팅에서 설명하겠습니다.

4. Composition API

ref(), onMounted()는 Options API를 보완해 Vue.js3에 새롭게 Composition API 다. Composition API의 종류는 다양하지만 API의 성격에 따라 포괄적인 용어로 구별할 수 있다. 이러한 용어가 어떤 의미를 갖고 있는지 API를 배우기 전에 먼저 살펴보자 Composition API는 성격에 따라 3개로 나뉜다. - 반응형 API - 라이프 사이클 훅 - 종속성 주입 파랑 - 반응형 API 빨강 - 라이프 사이클 훅 노랑 - 종속성 주입 반응형 API (Reactivity API) 말 그대로 반응하는 데이터와 관련된 API 세트다. 라이프 사이클 훅 Vue 인스턴스나 컴포넌트가 생성될 때, 미리 사전에 정의된 몇 단계의 과정을 거치게 되는데 이를 라이프 사이..

반응형