inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tìm hiểu các kỹ năng thực hành front-end của Vuejs, Vuex và Vue-Router thông qua phát triển Trello

Áp dụng Vuex - Kiểm tra danh sách bảng

보드를 추가했을 때 추가한 보드에 대한 화면 업데이트(?) 갱신(?)에 관한 질문입니다.

291

BOB

13 câu hỏi đã được viết

0

혼자서 복습하던 중 AddBoar.vue는 화면에 보드를 추가하는 것이고 Home.vue에서는 추가한 보드를 포함한 모든 보드를 갱신하는 역할이라고 생각하여 코드를 짰습니다. 아래와 같은 코드로요.

// Home.vue

fetchData() {
  this.loading = true;
  this.FETCH_BOARDS().finally(data3 => {
    console.log("data3 =", data3);
    this.loading = false;
  });
},

// Board.vue

addBoard() {
  this.SET_IS_ADD_BOARD(false);
   this.ADD_BOARD({ title: this.input })
}

여기서 문제점이 보드를 추가하자마자 추가한 보드는 화면에 갱신이 안됩니다. 그리고 새로 고침이나 다른 컴포넌트를 갔다가 들어오면 추가한 보드가 화면에 갱신이 됩니다.

그래서 기존의 소스 코드를 참고하여 틀린 부분을 고친 후, 보드를 추가했을 때 Vuex의 actions에 FETCH_BOARD하는 부분에 대한 로그를 찍어봤습니다.

// Home.vue
fetchData() {
  this.loading = true;
  this.FETCH_BOARDS().finally(data3 => {
    console.log("data3 =", data3);
    this.loading = false;
  });
},

// Board.vue
addBoard() {
  this.SET_IS_ADD_BOARD(false);
   this.ADD_BOARD({ title: this.input }).then(data1 => {
    console.log("data1 =", data1);
    this.FETCH_BOARDS().then(data2 => {
      console.log("data2 =", data2);
    });
  });
}

화면 상에서 Create new board...라는 보드를 클릭하였을 때, 추가한 보드가 바로 화면에 갱신이 되고

console.log를 찍어보면 

data3, data1, data2 순으로 출력이 됩니다. 왜 이러는 지 이유를 혹시 알 수 있을까요? 

자식 컴포넌트에서 무언가가 바뀌면(?) 이와 관련된 상위 컴포넌트부터 해당 자식 컴포넌트까지 가상 돔 트리가 생성이 되고, 상위 컴포넌트부터 자식 컴포넌트까지 순차적으로 바뀌니까 이런 현상이 발생한 건가요? 

vuejs javascript

Câu trả lời 1

0

jeonghwan

홈에 들어와서 Home.vue의 로그가 찍히고(data3) 

보드 추가할때 ADD_BOARD 로직이 수행된 다음(data1)

다시 데이터를 가져오는 FETCH_BOARDS 로직이 실행되닌깐(data2)

이런 순서대로 나오는 것 같아요. 혹시 어떤 순서를 기대하셨을까요? 

객체가 함께 반환되는데 왜 그럴까요

1

134

2

babel-core module 에러

0

227

2

watch와 computed

1

246

1

nextTick 관련 질문

0

703

1

a 태그에 href를 빈 값으로 계속 주는 이유

0

767

1

함수에서 _를 사용하셨는데 어떨때 쓰이는 건가요?

0

348

1

watch로 router 감시할 때

0

407

1

보드 아이템 배경색 변경 관련 질문

0

288

1

NavigationDuplicated 에러

0

673

1

vue-router 설치 중 계속해서 오류가 발생합니다.

2

1413

2

로컬 스토리지 관련 질문입니다!

0

469

1

<router-link> 질문

0

310

1

(재질문/Vuex 적용 - 인증 1) 강의에서 8분 18초 부분 질문 있습니다.

0

285

1

router-link 와 router-view 의 차이를 모르겠습니다!

1

1088

1

왜 index.js를 바로 볼 수 있나요?

0

366

2

리스트 내 카드 이동 오류

1

541

0

(Vuex 적용 - 인증 1) 강의에서 8분 18초 부분 질문 있습니다.

0

444

1

npm install 시 에러

0

991

2

안녕하세요 리스트 이동 관련 질문이 있습니다.

0

313

2

질문이 있습니다.

0

297

1

마지막 부분에 로그아웃 해서 로그인 화면으로 돌아왔을 때

0

264

1

소스 공유 받을수 있을까요?

0

327

1

setAuthInHeader 했는데 오류가 발생합니다.

0

246

1

복습 중 질문드립니다 ㅠ

0

219

1