我最近学习了mvc架构并使用了angular,现在我正在使用vuejs,我试图使模型和服务更像angular,这是一个好方法,有更好的方法吗?这是服务
//service for company
import axios from 'axios';
export default{
getCompany(id){
console.log('using function getCompany');
return axios.get('http://localhost:8000/api/company/'+id);
},
}
现在是模型
//model for company
export class CompanyModel{
name;
location;
salary;
constructor(data){
this.name = data.name;
this.location = data.location;
this.salary = data.salary;
console.log('CompanyModel constructor is used!');
}
}
这就是我在组件中使用它们来展示公司的方式
data() {
return{
companyModel:{},
}
},
mounted() {
CompanyService.getCompany(2)
.then((response) =>{
this.companyModel = new CompanyModel(response.data);
});
},
问题:我需要知道这是否足够好,或者vuejs是否有更自然的方式,而且我不喜欢如何从服务中完成axios请求,我想提取其中的所有请求我无法提供的服务。谢谢。
答案 0 :(得分:1)
我在这里写了一个很好的第一版:What's the equivalent of Angular Service in VueJS?
然后,您可以将其与services
结合使用,以避免始终都拨打axios。