Так же, как на изображении, есть дочерний компонент, который импортируется во все родительские компоненты (Pdetails, Education, Dependents ... и т. Д.),Одна из основных проблем, с которыми я сталкиваюсь, заключается в том, что, когда бы я ни направлялся к какому-либо из этих компонентов, axios
отправляет запрос get, который загружает тот же контент в дочерний компонент, и я считаю, что это не очень хорошо для производительности. Есть ли способ сделать это только один раз?
Во-вторых, как я могу делиться данными, возвращенными из API в дочернем компоненте, с родительским компонентом.
Это дочерний компонент
<template>
<div class="col-lg-3 col-xl-3">
<div class="card-box text-center">
<img src="/assets/images/users/user-1.jpg" class="rounded-circle avatar-lg img-thumbnail" alt="profile-image">
<h4 class="mb-0"> {{ employee.surname }} {{ employee.first_name }} </h4>
<p class=" mb-2 font-13"><strong><i class="fe-mail text-info"></i> :</strong> <span class="ml-2 ">{{employee.email}}</span></p>
<p class=" mb-1 font-13"><strong><i class="fe-layers text-danger"></i> :</strong><span class="ml-2">{{employee.age}}</span></p>
</div>
</div> <!-- end col-->
</template>
<script>
export default {
name: 'EmployeeCard',
data(){
return{
employee: {
job: '',
state:'',
company: ''
},
}
},
methods:{
getUser(){
axios.get('/api/users/'+ this.$route.params.id)
.then ( response => {
this.employee = response.data.data[0].data;
})
}
},
mounted(){
this.getUser();
}
}
</script>
А ниже приведенКомпонент personalDetail
<template>
<div>
<div class="row">
<EmployeeCard /> <!-- Can I get data from this child component to this component? -->
<div class="col-lg-9 col-xl-9">
<div class="card text-center">
<ProfileNav />
<div class="card-body">
</div>
</div> <!-- end card-box-->
</div>
</div>
</div>
</template>
<style scoped>
</style>
<script>
import ProfileNav from "../nav/ProfileNav";
import EmployeeCard from "./EmployeeCard";
export default {
name: 'PDetails',
components:{
ProfileNav, EmployeeCard
},
//every component must return something
data(){
return {
}
},
}
</script>
Я хочу поделиться такими данными, как employee.first_name
с карты Employee, на это EmployeeShow