반응형

vue.js/Vue3 - 기본편 28

8. computed

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

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, expose 속성이 있습니다.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 인스턴스나 컴포넌트가 생성될 때, 미리 사전에 정의된 몇 단계의 과정을 거치게 되는데 이를 라이프 사이..

3. Options API VS Composition API

Vue3에서 새롭게 등장한 Composition API는 Options API를 단점을 보완해서 새롭게 등장한 API다. Vue3 공식사이트에서 Compositon API로 개발하기를 권장하고 있다. Composition API란 옵션 (data, methos, ...)를 선언하는 대신 가져온 함수 (ref, onMounted, ...)를 사용하여 vue 컴포넌트를 작성할 수 있는 API 세트를 말한다. 옵션 API에서는 함수 작성시 methos 영역에서만 가능했다면 Composition API는 script단 어디서든 함수 작성이 가능하다. 이것들이 다 compositionAPI다. 이것들은 OptionsAPI다 왜 compositonAPI 인가? optionsAPI 에서는 논리적 관심사를 처리하는 코..

2. Root 컴포넌트 렌더링 과정 + ESLint, Prettier

Root 컴포넌트 렌더링 과정 alias - 파일 시스템 경로에 별칭을 만들때 사용한다 App.vue가 Root 컴포넌트 1. 맨 처음에 Web이 실행되면 index.html 파일을 실행한다. 2. 그러면 스크립트 태그에 선언된 메인 모듈을 가져온다. 그게 main.js 다. 3. main.js를 살펴보면 createApp이란 메서드가 있다. 이건 실제 Vue 애플리케이션. Vue인스턴스를 생성하는 메서드다. 4. 여기에 App.vue가 들어가게 된다. 5. 그리고 생성된 vue인스턴스를 mount() 메서드 안에 #app에 마운트 시킨다. 6. App.vue에 있는 root 컴포넌트가 렌더링 된다. ESLint, Prettier https://ko.vuejs.org/style-guide/ Vue.js ..

1. Vue.js란 무엇인가? + 컴포넌트 이해하기

1. Vue란 무엇인가? Vue의 특징 1. 선언적 렌더링 - 선언만해도 템플릿에 사용하면 자동으로 값이 바뀌고 렌더링된다. - 자바스크립트로만 하려면 값을 바꾸고 싶을때마다 다시 변수에 할당해야한다. 2. 반응성 - 값이 바뀌었을때 자동으로 업데이트 된다. 핵심 기능 1. 바인딩 v-bind 디렉티브 - dom의 속성에 데이터를 바인딩해준다. - 템플릿의 태그에서 :로 시작하는건 다 바인딩 2. v-on 이벤트 헨들링 - 템플릿의 태그에서 @로 시작하는건 다 이벤트 3. v-model 양방향 바인딩 4. v-if 5. v-for 6. v-html 7. v-once - 한번만 데이터가 변경되고 반응하지 않게 하는 기능 2. 컴포넌트 이해하기 컴포넌트 - 재사용 모듈 - UI 재사용 한다 문자열 컴포넌트 ..

반응형