Vue3

    nextTick

    nextTick

    nextTick Vue.js에서 reactive한 상태가 변할 때, 그 상태 변화에 대한 DOM 업데이트는 비동기적으로 이루어진다! 아래의 예시를 살펴보자. reactive한 state가 변경되는 부분 바로 아래에 reactive한 state를 사용하는 h1 태그의 textContent를 console로 출력해보면 항상 이전의 값이 출력되는 모습을 보인다! 방금 말했다시피, DOM 업데이트가 끝나기 전에 먼저 DOM에 대한 내용을 출력하기 때문이다. count: {{ count }} count ++ 위와 같은 문제를 nextTick을 이용해서 해결할 수 있다! DOM 업데이트가 끝나야 nextTick이 실행되므로 reactive한 상태의 변화에 따른 올바른 DOM의 내용을 구 할 수 있다. DOM 업데이..

    vue attribute

    vue attribute

    $data 컴포넌트에서 data 속성에 정의(return)한 reactive한 값들을 객체로 뽑아준다. {{ $data }} this.a = 1은 reactive하지 않으므로 화면에 나타나지 않는다. $props 부모로부터 건내받은 props를 object 형식으로 받을 수 있다. 부모 컴포넌트 자식 컴포넌트 props 속성을 통해 부모로부터 받은 props를 명시해야 $props로 받을 수 있다 props: {{ $props }} $el 해당 컴포넌트의 HTML(element들)을 뽑아준다. $el을 통해 현재 컴포넌트의 HTML을 조회해서 querySelector를 사용할 수 있다. 최상위 엘리먼트가 하나만 존재해야 정상적으로 작동한다! Hi, i'm duckgugong $el test! $optio..

    mixin

    mixin

    Mixin 만약 여러 컴포넌트가 같은 형식의 data나 methods를 사용한다면 모듈화를 시키는 것이 굉장히 편할 것이다. 컴포넌트마다 똑같은 형식의 data나 methods를 일일이 치고 있다면 생산성이 굉장히 떨어지고 비효율적일 것이다. 특히 겹치는 부분이 많을수록 더욱 그럴것이다! Vue.js에서 Mixin을 통해 이러한 문제를 해결할 수 있다! 컴포넌트들이 공유할 mixin 파일 (MixinTest.js) 컴포넌트들이 공통으로 사용할 data 속성과 methods 속성을 작성한 파일을 하나 만들자 const MixinTest = { data() { return { num: 1 } }, methods: { plus_one() { this.num++; }, minus_one() { this.num-..

    provide/inject

    provide/inject

    provide/inject Vue.js에서 전역 상태를 사용해서 prop drilling을 피할 수 있는 방법이다! 전역 상태를 넘길수 있는 방법이 크게? 두가지가 있다. reactive한 상태를 넘기는 것과 그렇지 않은 상태를 넘기는 것! 사용법은 전역 상태를 넘길 컴포넌트에서 provide 키워드를 사용해서 전역 상태를 넘기고 자식이나 자손들이 inject 키워를 이용해 해당 상태를 사용하는 방식이다! reactive 하지 않은 상태 proivde로 넘겨준 상태가 변경되도 자식이나 후손이 리렌더링 되지 않는 경우! 별다른 키워드 없이 최상위 컴포넌트에서 provide 키워드 안에 computed를 사용하지 않고 상태를 전달하는 경우! 최상위 컴포넌트 provide 키워드를 사용해서 num이라는 전역 ..