728x90

<script>
export default {
  data() {
    return {
      myData: null
    }
  },
  beforeRouteEnter(to, from, next) {
    // API 호출
    axios.get('/api/my-data')
      .then(response => {
        // 데이터 저장
        next(vm => vm.myData = response.data)
      })
      .catch(error => {
        console.log(error)
      })
  }
}
</script>

 

beforeRouteEnter 로 router 를 타기전 호출 할수 있는 방법으로 

to 와 from 에는 아래와 같은 속성을 담고 있다. 

 

name: 현재 라우트의 이름
path: 현재 라우트의 경로
hash: URL의 해시 값
query: URL의 쿼리 파라미터 객체
params: URL의 동적 라우트 매개변수 객체
meta: 현재 라우트의 메타 데이터 객체

 

아래는 router 타기전 api 를 호출 하고 store 에 함수를 호출 하여 

값을 저장 하는 로직을 보여주고 있다. 

 

import store from '@/store'

export default {
  data() {
    return {
      myData: null
    }
  },
  beforeRouteEnter(to, from, next) {
    // API 호출
    axios.get('/api/my-data')
      .then(response => {
        // 데이터 저장
        store.commit('SET_MY_DATA', response.data)
        next()
      })
      .catch(error => {
        console.log(error)
      })
  }
}

728x90

+ Recent posts