programing

vue-router를 사용한VueJ 서버 루트로 리다이렉트하는 방법

newsource 2022. 7. 28. 23:56

vue-router를 사용한VueJ 서버 루트로 리다이렉트하는 방법

로그아웃 링크를 클릭하는 사용자를 서버에서 렌더링한 로그아웃 페이지로 리디렉션하려고 합니다.다만, 아래의 코드에서는, 디폴트 패스로 리다이렉트 됩니다.

다음과 같이 플라스크에 서버 루트를 설정하고 있습니다.

@app.route('/logout')
def logout():
    logout_user()
    return render_template('login.html')

vue에서는 서버 루트로 전송되도록 루트를 리다이렉트합니다.

<template>
<a v-on:click="logout">Logout</a>
</template>
<script>
  export default {
    name: SomePage.vue
  },
  methods: {
    logout () {
      this.$router.replace('/logout')
      // I also tried .go('/logout')
    }
  }
 </script>

그럼 라우터에 루트를 설정해야 하나요?

export default new Router {
  routes: {
     {
     path: '/'
     component: Default
     children: [
       {
       path: '/logout'
       // no component added here - is it needed?
       }
     ]
  }
}

이미 /logout으로 리다이렉트 되어 있기 때문에 이 루트에 컴포넌트를 추가하는 것이 도움이 될지 모르겠습니다.기본 /logout으로 이동하여 서버에서 .html 페이지를 가져오기만 하면 됩니다.좋은 생각 있어요?

몇 가지 문제가 있어 해결책을 찾습니다...vuejs 2 +로 시험해 보겠습니다.

this.$router.push('/logout')

를 통한 창 위치 조작$router메서드에서는 브라우저가 페이지 전체를 새로고침하지 않습니다.창 위치를 수동으로 설정해야 합니다.

window.location.replace('/logout')

언급URL : https://stackoverflow.com/questions/43153406/vuejs-with-vue-router-how-to-redirect-to-a-server-route