Vuejs这是实现服务的好方法吗?

时间:2019-01-12 11:21:51

标签: vue.js model-view-controller service

我最近学习了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请求,我想提取其中的所有请求我无法提供的服务。谢谢。

1 个答案:

答案 0 :(得分:1)

我在这里写了一个很好的第一版:What's the equivalent of Angular Service in VueJS?

然后,您可以将其与services结合使用,以避免始终都拨打axios。