상세 컨텐츠

본문 제목

this.$nextTick()

vue

by Goyoungjung 2023. 7. 19. 10:59

본문

vue.js에서 제공하는 메소드

vue의 반응성 시스템을 이해하고 활용하는데 유용

 

vue 컴포넌트는 데이터가 변경되면 자동으로 리렌더링되지만, 때로는 변경된 데이터가 DOM에 적용되기 전에 코드를 실행해야 하는 경우가 있음 -> 이때 this.$nextTick()를 사용해야 함

 

DOM 업데이트 사이클에서 코드 실행 함. 즉 데이터 변경 후 DOM 업데이트가 완료된 시점에서 콜백 함수를 실행

-> 변경된 데이터가 반영된 화면을 기반으로 추가적인 작업을 수행할 수 있음

<template>
  <Title name="TO-DO" />
  <ToDoInput />

  <div v-for="data in dataJson" :key="data.id">
    <div>
      <input type="checkbox" :id="data.id" @click="check" />{{ data.todo }}
    </div>
  </div>
  <ToDoList />
</template>

<script>
import axios from "axios";
import Title from "./components/Title.vue";
import ToDoInput from "./components/ToDoInput.vue";
import ToDoList from "./components/ToDoList.vue";

export default {
  name: "App",
  components: {
    Title,
    ToDoInput,
    ToDoList,
  },
  data() {
    return {
      dataJson: null, // json 파일에 저장되어있는 데이터를 dataJson으로 저장
      checkedCategories: [],
    };
  },
  created() {
    this.getData();
  },
  methods: {
    // 서버 측에게 ToDoList data를 요청하고 받아와 화면에 출력
    getData() {
      axios
        .get("http://localhost:3000/getData")
        .then((response) => {
          this.dataJson = response.data;
        })

        .catch((error) => {
          console.error(error);
        });
    },
    check(e) {
      this.$nextTick(() => {
        console.log(e.target.id);
      });
    },
  },
};
</script>

 

'vue' 카테고리의 다른 글

setInterval 함수  (0) 2023.07.25
Vue.js ref와 reactive 차이점  (0) 2023.07.18
Vuex, To-Do List  (0) 2023.07.17

관련글 더보기