# 知识点
* 使用mockjs生成模拟数据
* API接口数据模拟
* API接口规范的实现
> 为方便后续的服务端接口实现,前端模拟的数据保持与服务端实现的真实接口一致,具体遵循接口规范一节定义的规范。
# 安装依赖包
安装mockjs依赖包,
~~~
cnpm i mockjs --save
~~~
# 建立几个目录
建立以下目录`/src/common/api/portal/mock`,用于存放接口文件。
> 在项目根目录下执行以下命令一次性建立多级目录
~~~
mkdir -p ./src/common/api/portal/mock
~~~
> vscode工具右键弹出新建目录,允许一次输入多级目录,工具会帮我们创建多级目录
# 编写新闻模块接口文件
* 获取新闻列表getList
* 获取新闻详情getDetail
建立/common/api/portal/mock/news.js文件,输入以下内容
~~~
///src/common/api/portal/mock/news.js
import Mock from "mockjs";
//http://mockjs.com/
export default {
/**
* 获取新闻动态的分页数据
* @param {Object} map 查询条件对象
* @return {Promise<Object>} 新闻动态的分页数据
*/
async getList(map = {}) {
//从map对象中提取page和pageSize两个属性并赋值给page和pageSize变量
let { page, pageSize } = map;
let mockOptions = {
errno: 0,
errmsg: "获取信息成功",
data: {
count: 200,
totalPages: 20,
pageSize: pageSize,
currentPage: page,
"data|3": [
{
"id|+1": 1, // 属性 id 是一个自增数,起始值为 1,每次增 1
title: "@ctitle(10,30)",
cover: "@image('300x200', '#50B347')",
create_at: "@date()",
abstract: "@cparagraph(3,50)",
},
],
},
};
let data = await Mock.mock(mockOptions);
return new Promise((resolve, reject) => {
resolve(data);
});
},
async getDetail(id) {
let mockOptions = {
errno: 0,
errmsg: "获取信息成功",
data: {
"id|+1": 1, // 属性 id 是一个自增数,起始值为 1,每次增 1
title: "第7届全国大学生软件设计大赛捷报",
create_at: "@date()",
cover: "@image('1024x200', '#50B347')",
abstract: "@cparagraph(100)",
description: "@cparagraph(100)",
author: "@cname()",
"category_label|1": ["团队动态", "行业报告"],
},
};
let data = await Mock.mock(mockOptions);
return new Promise((resolve, reject) => {
resolve(data);
});
},
};
~~~
建立/src/common/api/portal/index.js文件,
输入以下内容
~~~
import news from "./mock/news.js";
/**
* import {news} from "@/common/api/portal"
*
* @example
*
* news.getList(this.map).then((res) => {
* if (res.errno == 0) {
* const tableData = res.data;
* // ...
* });
* } else {
* console.log(res.errmsg)
* }
* });
*/
export { news };
~~~
# 技能提升
- 文档说明
- 服务端开发指南
- 客户端开发指南
- 请求拦截器
- API接口实例分析
- 页面文件
- NPM包管理
- 创建NPM包项目
- 课程设计
- 概述
- 内容管理系统项目
- 配置开发环境
- 设计静态原型
- 快速构建项目
- 构建CMS系统前端界面
- 门户模块
- 新闻列表
- API接口规范
- 生成模拟数据
- 显示新闻列表
- NavigatorPath组件
- ChannelHeader组件
- v-line-clamp指令
- formatDate过滤器
- 新闻详情页
- 修改顶部导航菜单
- 实现访问远程API
- 扩展功能
- 组件开发
- 服务端项目
- 编写服务模块
- 项目配置
- 数据库
- 创建数据库脚本
- 配置数据库
- 创建模拟数据
- 新闻模块控制器
- 添加逻辑验证层
- 实现接口
- 书栈模块
- QA