Programing

사용자가 브라우저를 다시 누른 후 마운트된 Vuejs를 트리거하지 않음

c10106 2022. 3. 8. 21:51
반응형

사용자가 브라우저를 다시 누른 후 마운트된 Vuejs를 트리거하지 않음

내 vuejs 애플리케이션에는 대시보드가 있으며, 사용자가 /room(/room)으로 자신을 보내는 버튼을 클릭할 수 있다.router.push("/room");).

사용자가 페이지에 도착하면 "마운트된" 기능이 트리거되고 간단한 console.log가 에미레이트된다.그것은 효과가 있다.

mounted() {
    console.log("room mounted");
}

사용자가 브라우저의 "뒤로" 버튼을 누르고 대시보드로 돌아가면 다시 버튼을 클릭하여 룸에 가입할 수 있지만, 이때를 제외하고는 "장착" 기능이 트리거되지 않는다.

이것을 작동시킬 수 있는 방법이 있는가?

감사합니다.

아래 답변에 대한 답변의 일부에 대해,

내가 찾고 있는 것은 라우터.push("/room")를 트리거하는 버튼을 다시 클릭할 때 내가 리디렉션되거나 마운트되거나 업데이트될 때 호출되기 때문이다.

당신의 문제를 해결하기 위해 당신은 다음과 같은 방법으로 $route 객체를 볼 수 있다.

watch: {
  '$route' () {
     // this will be called any time the route changes
   }
},

Vue Router GitHub repo의 이 문제에 따라 Vue Router에서 예상되는 동작:

이는 예상된 동작이며, Vue는 가능한 경우 구성 요소를 재사용한다.

ForeRouteUpdatehook을 사용하여 동일한 구성 요소를 사용하는 경로 스위치에 반응할 수 있다.

이미 장착된 구성 요소로"뒤로"이동해도 구성 요소의 후속 장착이 트리거되지 않는다.라우트 업데이트에서 트리거되는 라이프사이클 후크를 보려면 블로그 게시물을 확인하십시오(라이프사이클 후크 다이어그램으로 스크롤).

현재 직면하고 있는 상황은 다음과 같은 "클라이언트 업데이트" 열입니다.mounted부르지 않지만update일반적으로, 나는 두 가지 모두에 평행 코드를 사용하는 경향이 있다.beforeRouteEnter그리고beforeRouteUpdate. 슬프게도, 좀 반복적이다.

참조URL: https://stackoverflow.com/questions/61718251/vuejs-not-triggering-mounted-after-user-pressed-back-on-his-browser

반응형