Я пытался понять это часами, но не повезло. У меня есть 2 компонента. Первый компонент является динамическим, а второй компонент просто получает геолокацию пользователя. Геолокация затем отображается в первом компоненте.
Моя проблема в том, что я отображаю первый компонент на странице несколько раз, и каждый раз, когда он отображается, он делает запрос GET, который неэффективен. Если я покажу компонент 3 раза, он сделает 3 запроса GET.
Какой лучший способ переписать это?
Спасибо за помощь
Компонент 1:
<template>
<section id="under-info">
THe user is from <ip_info></ip_info>
</section>
</template>
<script>
export default {
}
</script>
Компонент 2:
<template>
<span id="user-city">
{{value}}
</span>
</template>
<script>
export default {
mounted: function () {
this.$nextTick(function () {
this.getIpInfo(this.param)
})
},
props:['param'],
data: function () {
return {
value:null
}
},
methods:{
getIpInfo(){
var vm = this
delete axios.defaults.headers.common["X-Requested-With"];
delete axios.defaults.headers.common["X-CSRF-TOKEN"];
axios
.get('http://api.ipstack.com/check?access_key=?',{
timeout: 1000
})
.then(function(response) {
vm.value = response.data['city]
})
}
},
}
</script>