ohayolibs
Version:
Ohayo is a set of essential modules for ohayojp.
58 lines (41 loc) • 2.25 kB
Markdown
---
order: 1
title: 开始使用
type: Documents
---
## 写在前面
Mock 是指通过生成模拟数据让前端开发人员独立于后端进行开发,有时我们也会运用在测试环境中。
`@ohayo/mock` 是一个简单 Mock 功能,包括以下几个特征:
- 任意 Angular 项目
- 开发无侵入
- 超简单用法
- 支持 [mock.js](http://mockjs.com/)
## 如何使用
安装 `@ohayo/mock` 依赖包:
```bash
yarn add @ohayo/mock -D
```
参考 [global-config.module.ts](https://github.com/ohayojp/ohayojp/blob/master/src/app/global-config.module.ts#L26-L30) 导入[Mock 规则数据](/mock/rule)。
### MockOptions 配置
> 可以通过[全局配置](/docs/global-config)覆盖它们。
| 成员 | 说明 | 类型 | 默认值 | 全局配置 |
|----|----|----|-----|------|
| `[data]` | `any` | - | Mock 数据规则 | ✅ |
| `[delay]` | `number` | `300` | 请求延迟,单位:毫秒 | ✅ |
| `[force]` | `boolean` | `false` | 是否强制所有请求都Mock,`true` 表示当请求的URL不存在时直接返回 404 错误,`false` 表示未命中时发送真实HTTP请求 | ✅ |
| `[log]` | `boolean` | `true` | 是否打印 Mock 请求信息,弥补浏览器无Network信息;当请求经过 Mock 会接收【👽Mock】 | ✅ |
| `[executeOtherInterceptors]` | `boolean` | `true` | 是否拦截命中后继续调用后续拦截器的 `intercept` 方法 | ✅ |
| `[copy]` | `boolean` | `true` | 是否返回副本数据 | ✅ |
> 若**懒模块**还需要导入 `forChild` 确保HTTP拦截器有效,一般可以直接在 SharedModule 直接使用 `forChild`。
### 为什么只对开发环境有效?
Mock 并非是真实数据,大部分场景是针对开发本地或测试环境;所以在生产环境中不应该包括 Mock 模块以及规则数据。因此上述才会根据 `!environment.production` 依据环境来决定是否加载 `OhayoMockModule`。
当然,你依然可以在生产环境也使用这种规则,就像 //ohayojp.github.io/ohayojp/ 一样,需要一些模拟请求来保证环境的运行。
```ts
import { OhayoMockModule } from '@ohayo/mock';
import * as MOCKDATA from '../../_mock';
@NgModule({
imports: [
OhayoMockModule.forRoot({ data: MOCKDATA })
]
})
```