동적 라우팅과 헬퍼함수 간의 오류 질문드립니다.
263
1 asked
안녕하세요. 강사님. 항상 강의 잘 보고 있습니다.
AskView에서 헬퍼함수(mapGetters)를 사용한 것과 같이 NewsView에서도 동일하게 적용해보았습니다.
근데, 이 후 라우팅 파트에서 router-link를 구현할 때 오류가 발생 하더라구요.
원인은 비동기로 가져오는 'fetchedNews' 값이 router-link를 렌더링 하는 시점보다 늦게 응답받기 때문이라고 생각했습니다.
그러던 중 router-link를 다른 방식으로 작성 하였더니 정상동작해서 질문드립니다..
하기 두 방식의 차이점이 무엇인지 잘 모르겠습니다.
더불어, 위와 같이 router-link의 기반데이터를 얻는 비동기 응답의 시간이 지연될 때, router-link의 생성을 같이 늦출 수는 없을까요?..
[1. 오류가 났던 사용 법]
<router-link class="link-text" :to="{ name: 'user', params: { id: item.user } }">
{{ item.user }}
<router-link>[2. 수정된 동작한 사용법]
<router-link :to="`user/${item.user}`">{{ item.user }}</router-link>
Answer 2
0
안녕하세요, 아마 1번 코드에서 item.user를 접근할 때 item이 빈 값이면 에러가 발생했을 것 같아요. item에 옵셔널 체이닝 문법을 쓰거나 item 값의 초기 값을 null, undefined가 아닌 빈 객체로 두시는 방법도 유효할 것 같습니다 :)
https://joshua1988.github.io/vue-camp/es6+/optional-chaning.html
0
안녕하세요 김동현 님,
오류가 발생한 사용 방법과 수정된 사용 방법의 차이점에 대해 설명드리겠습니다.
첫 번째 사용 방법에서는 <router-link>의 to 속성에 객체 형태로 경로와 파라미터를 설정하였습니다. 이 경우, 해당 값을 동적으로 가져오는 fetchedNews 값이 아직 비동기로 응답되지 않은 상태에서 렌더링되기 때문에 오류가 발생할 수 있습니다.
두 번째 사용 방법에서는 <router-link>의 to 속성에 템플릿 리터럴을 사용하여 경로를 문자열로 생성하였습니다. 이 방식은 fetchedNews 값이 비동기로 응답된 이후에 연산되기 때문에 오류가 발생하지 않았을 것입니다.
router-link의 생성을 응답 지연 시간에 맞춰 같이 늦출 수 있는 방법은 없습니다. 하지만 일반적으로 비동기 요청을 처리하고 데이터를 받아온 이후에 router-link를 렌더링하는 방식으로 구현하실 수 있습니다. 이렇게 함으로써 데이터를 받아오는 시간이 지연되더라도 오류 없이 라우터 링크를 생성할 수 있습니다.
그럼에도 불구하고 동적 데이터를 사용하는 라우터 링크의 생성을 미루고자 한다면, v-if 또는 조건부 렌더링을 사용하여 fetchedNews 값이 있는 경우에만 라우터 링크를 렌더링하도록 조건을 처리할 수 있습니다.
이해가 도움이 되셨길 바랍니다. 추가로 궁금한 점이 있으시면 언제든 문의해주세요!
깃 권한 요청 드립니다
0
50
1
깃 권한 신청
0
50
1
깃 권한 요청드립니다.
0
111
1
깃허브 권한 요청 드립니다
0
144
1
깃허브 권한 요청 드립니다
0
160
1
깃허브 권한 요청 드립니다
0
167
1
깃허브 권한 요청 드립니다.
0
154
1
안녕하세요 vue 2.7로 수강하고 있는 학생입니다. 실무에서 최하위 자식의 props와 watch의 관계를 여쭈고자 합니다.
0
207
1
ide 타입추론 기능 사용할 수 없을까요??
0
205
1
컴포넌트 링크는 vue peek 익스텐션 설치가 필수인가요??
0
228
1
Vue3로 진행중입니다
1
338
1
Vue router-link 사용시 같은 url이면
1
506
1
vue3 에러 메세지...
1
670
2
id ="app" 중복
0
271
2
use undefined 에러가 나옵니다.
1
318
2
깃허브 권한 요청드립니다.
1
358
2
권한요청드립니다.
1
299
2
Vue3에서 구글 애드센스 탑재하기
1
435
2
코드가 정상 작동 되는건지 ...
1
302
1
강의에서 api를 따로 빼셨는데 얻는 이점이 뭐죠?
1
243
1
vuex 적용시 질문
1
285
2
라우터 버전이 안맞는데 어떤걸 써야하나요
1
377
2
UserView에 id 속성만 undefined로 넘어오는데 이유를 모르겠습니다..
1
451
2
권한요청 드립니다!
1
270
2

