吐血整理的前端代码规范系列 -- 服务设计规范

1,049 阅读1分钟

规范说明

职责分层,将数据处理和数据展示分成两个职责进行处理。

  • 数据处理:进行服务化,即表示数据的获取,数据的转换。
  • 数据展示:视图绑定,只应用/调用数据处理的结果。

一、数据来源与处理服务化

将接口请求封装在 service 文件夹下,不同的业务类型封装成不同的文件(模块化)。

1、函数命名规范

根据不同接口操作和不同功能进行命名区分,大方向原则是动词(操作的动作)+名词(操作的对象),具体用词规范参加下列示范:

GET ==> queryModel
GET ==> listModel
POST ==> insertModel
PUT ==> updateModel
DELETE ==> removeModel

2、接口数据处理规范

最后返回的数据是页面调用中可以直接使用的数据,在页面调用的地方不用再做任何处理

/**
 * Model模块接口列表
 */

import axios from '@/utils/axios'; // 导入创建好的 axios 实例

export const listModel = async params => {
    const res = await axios.get('/api/model', {
        params
    });
    return res.data.slice(0, 10);
}

3、接口参数处理规范

在services函数里进行参数前置处理,直接返回接口需要的参数形式

/**
 * Model模块接口列表
 */

import service from '@/service'; // 导入service中创建的axios实例

export const updateModel = async (params) => {
  	this.$set(params, 'count', 90);
    const res = await service.put('/api/model', {
        params
    });
    return res;
}

二、视图层只对服务进行调用,不进行二次处理

//获取
import { listModel, updateModel } from '../services/model';

methods: {    
   async getList() {     
        const { list } = await listModel({id: 666})
    		console.log(list);
    } 
  
   async updateList() {     
        const { detail } = await updateModel({id: 666})
    		console.log(detail);
    }  
}