• 通过mockjs生成随机响应数据


    今天给大家带来通过mock为每个组件准备模拟数据,生成随机响应数据,如果哪里不对,请多多指教。

    1. mockjs介绍(为每个组件准备模拟数据)

    Mock.js是一个模拟数据的生成器,用来帮助前端调试开发、进行前后端的原型分离以及用来提高自动化测试效率。众所周知Mock.js因为两个重要的特性风靡前端,由于前后端是分离的,所以为了前端编写时候方便测试,我们就可以编写一个mock来测试ajax提交数据是否成功

    官网http://mockjs.com目的

    • 数据类型丰富
    • 支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等。
    • 拦截Ajax请求
    • 不需要修改既有代码,就可以拦截Ajax请求,返回模拟的响应数据。

    2.效果展示

    登陆成功后

    实现mockjs发送数据效果展示

    3. 如何使用 mockjs

    以下这些前提是必须要确定nodejs环境已经安装好的

    1)安装mockjs依赖

    1. # -D表示只在开发环境中使用
    2. npm install mockjs -D

    2)在config目录下配置mockjs 

    开发环境配置如下

    1. module.exports = merge(prodEnv, {
    2. NODE_ENV: '"development"',
    3. //增加配置
    4. MOCK:'true'
    5. })

    生产环境配置如下

    1. module.exports = {
    2. NODE_ENV: '"production"',
    3. //新增mockjs配置
    4. MOCK:'false'
    5. }

     修改main.js

    process.env.MOCK && require('@/mock')

    注:

    1. process对象是Node的一个全局对象,提供当前Node进程的信息
    2. process.env返回环境变量 
    3. import是ES6标准中的模块化解决方案,require是node中遵循CommonJS规范的模块化解决方案,后者支持动态引入,也就是require(${path}/xx.js)

    3)创建目录和index文件

    在src目录下创建mock目录,定义mock主文件index.js,并在该文件中定义拦截路由配置,/src/mock/index.js

    1. //引入mockjs,npm已安装
    2. import Mock from 'mockjs'
    3. //引入封装的请求地址
    4. import action from '@/api/action'
    5. //全局设置:设置所有ajax请求的超时时间,模拟网络传输耗时
    6. Mock.setup({
    7. //延时400s请求到数据
    8. // timeout: 400
    9. //延时200-400s请求到数据
    10. timeout: 200 - 400
    11. })

    4)通过mockjs模拟发送数据

    每个组件准备模拟数据,为每个组件(*.vue)准备模拟数据。然后导入到mock/index.js中

    这里我们引入编辑好模拟数据login-mock.js

    1. //引入mockjs,npm已安装
    2. import Mock from 'mockjs'
    3. //引入封装的请求地址
    4. import action from '@/api/action'
    5. //将模拟数据导入到这里。
    6. import loginData from '@/mock/json/login-mock.js'
    7. //获取请求的url
    8. let url = action.getFullPath("SYSTEM_USER_DOLOGIN");
    9. //Mock.mock(url, "post", loginData);
    10. //执行发送模拟请求
    11. Mock.mock(url, /post|get/i, loginData);
    12. //全局设置:设置所有ajax请求的超时时间,模拟网络传输耗时
    13. Mock.setup({
    14. //延时400s请求到数据
    15. // timeout: 400
    16. //延时200-400s请求到数据
    17. timeout: 200 - 400
    18. })

    5)准备模拟数据,编辑login-mock.js

    1. //为增加可读性loginData与mack/index.js中导入的名称对应
    2. const loginData = {
    3. "success": true,
    4. "msg": "密码正确"
    5. }
    6. //将当前模块导出,导出后index.js才可以导入
    7. export default loginData

    注: 

    1. url  请求url
    2. post 请求方式
    3. loginData  模拟数据
    4. mockjs  会拦截发送的请求,并使用模拟数据充当真实返回的响应数据
    5. Mock.mock(url, /post|get/i, loginData);   执行模拟发送请求
    6. export default loginData  将当前模块导出,导出后index.js才可以导入

    通过路由跳转 常用方式

    • 字符串: this.$router.push('/home/first')
    • 对象: this.$router.push({ path: '/home/first' })
    • 命名的路由:
      this.$router.push({ name: 'home', params: { userId: wise }})
      params为传递的参数

    this.$router.push、replace、go的区别

    this.router.push(): 跳转到不同的url,这个方法会向history栈添加一个记录,点击后退会返回到上一个页面 this.router.replace() : 同样是跳转到指定的url,但是这个方法不会向history里面添加新的记录,点击返回,会跳转到上上一个页面。上一个记录是不存在的。
    this.$router.go(n):相对于当前页面向前或向后跳转多少个页面,类似 window.history.go(n)。n可为正数可为负数。负数返回上一个页面

  • 相关阅读:
    WebStorm 2023年下载、安装教程、亲测有效
    使用Python生成多种不同类型的Excel图表
    PHP:namespace 关键字和 __NAMESPACE__ 常量
    tap栏切换(固定位置型)
    Ant Design中使用css切换问题记录
    Open CASCADE学习|Standard_EXPORT
    android关于性能优化
    java,springboot钉钉开发连接器,自定义连接器配合流程使用,流程加入连接器,连接器发送参数,然后你本地处理修改值,返回给流程
    Vue.js+SpringBoot开发高校实验室管理系统
    2023-09-28 mysql-代号m-schema调研-文档记录
  • 原文地址:https://blog.csdn.net/Bugxiu_fu/article/details/127129660