• Mockjs---自定义静态数据---Vue ui视图化的创建项目的笔记


    --------------------------------
    mock前端静态数据--资料
    1.使用vue ui
    视图化工具----创建vue 项目
    2.点击vue 项目管理器
    3.项目名称vue_mock 包管理器:建议使用npm 因为yarn适合在react中使用

    4.初始化git仓库 打开-- init project
    5.功能--打开babel linter 使用配置文件
    6.配置--select---选择标准的语法---ESLint + Standard config
    打开是检查语法---Lint on save
    --------------项目创建完成--cmd命令在创建不要关闭
    7.添加插件--搜索element-ui
    选择第二项---按需引入--import on demand
    语言模式--zh-cn

    8.安装mockjs依赖--运行依赖

    main.js

    import Vue from 'vue'
    import App from './App.vue'
    import './plugins/element.js'
    
    // 导入mock 文件---打开vue ui  安装axios依赖
    import './mock/index.js'
    import axios from 'axios'
    Vue.config.productionTip = false
    // 全局挂载
    Vue.prototype.$http = axios
    new Vue({
      render: h => h(App)
    }).$mount('#app')
    

      

    App.vue

    <template>
      <div id="app">
       <h1>学习mockjs</h1>
         <hr/>
         <!-- 模拟get 请求 -->
        <button @click="getGoodsList">获取商品列表</button>
        <!-- 模拟post请求 -->
        <button @click="addGoods">添加商品</button>
        <!-- 根据id获取商品详情 -->
        <button @click="getGoodsById(2)">获取商品详情</button>
      </div>
    </template>
    
    <script>
    
    export default {
      methods: {
        // 模拟异步get
        async getGoodsList () {
          const { data: res } = await this.$http.get('/api/goodslist')
          console.log(res)
        },
    
        // 模拟异步post
        async addGoods () {
          const { data: res } = await this.$http.post('/api/addgoods', {
            name: '菠萝',
            price: 8,
            count: 550,
            img: ''
          })
          console.log(res)
        },
    
        // 根据id获取商品详情---注意`/api/getgoods/${id}`z 这里不是单引号是分隔号
        async getGoodsById (id) {
          const { data: res } = await this.$http.get(`/api/getgoods/${id}`)
          console.log(res)
        }
      }
    }
    </script>
    
    <style>
    
    </style>
    

     mock---index.js

    // 导入模拟假数据的包
    import Mock, { Random } from 'mockjs'
    
    // 自定义一个数组--随机获取这个数组里边的值--引用Random
    // 创建自定义Mock函数
    Random.extend({
      // 自定义函数名:function 函数
      fruit: function () {
        const arr = ['榴莲', '菠萝蜜', '椰子', '苹果', '菠萝']
        return this.pick(arr)
      }
    })
    
    // 通过Mock.mock()来模拟API接口----GET请求
    Mock.mock('/api/goodslist', 'get', {
      status: 200,
      message: '获取商品列表成功',
      // 生成5到10条,或者直接data|5条数据
      'data|5-10': [
        {
          // mock自增函数@increment-从1开始
          id: '@increment(1)',
          // 随机返回中文文字-显示名字
          name: '@cword(2, 8)',
          // 随机返回一个自然数
          price: '@natural(2, 10)',
          count: '@natural(100, 999)',
          // 建议使用 data字符串压缩64格式,你建议url地址请求
          img: '@dataImage(78x78)'
        }
      ]
    })
    
    // 通过Mock.mock()来模拟API接口---POST请求
    Mock.mock('/api/addgoods', 'post', function (option) {
    // 这里的option是请求相关的参数
      console.log(option)
      return {
        status: 200,
        message: '添加商品成功'
      }
      /*
      外层的 mock是拦截请求的
      返回参数要想引用函数,需要再次引用mock函数
      return Mock.mock({
          status: 200,
          message: '@cword(2,5)'
      })
      */
    })
    
    // 通过Mock.mock()来模拟API接口----GET请求--请求带参数--根据id返回商品详情
    /*
    Mock.mock('/api/getgoods/1', 'get', {
      data: {
        id: 9,
        name: '苹果',
        price: 2,
        img: '@dataImage(78x78)'
      },
      status: 200,
      message: '获取商品详情成功'
    })
    */
    // 动态获取id---转义字符
    /*
    Mock.mock(//api/getgoods/, 'get', {
      data: {
        id: 9,
        name: '苹果',
        price: 2,
        img: '@dataImage(78x78)'
      },
      status: 200,
      message: '获取商品详情成功'
    })
    */
    // 获取传过来的参数id--使用正则拆分
    Mock.mock(//api/getgoods/, 'get', function (option) {
      console.log(option)
    
      const res = //api/getgoods/(d+)/.exec(option.url)
      console.log(res)
      return Mock.mock({
        data: {
        // 转成数字
          id: res[1] - 0,
          name: '@fruit()', // 调用自定义数组
          price: 2,
          img: '@dataImage(78x78)'
        },
        status: 200,
        message: '获取商品详情成功'
      })
    })
  • 相关阅读:
    CNZZ公告:近期无法获取百度关键词
    怎样注册uber司机 如何注册uber司机 最新详细攻略
    Uber司机一周体验记:成单率仅57%
    Uber司机手机终端问答篇
    Uber 司机有话说:你以为当个 Uber 司机很轻松?大错特错!
    每门编程语言修复了什么
    let区别(关于racket和r5rs)
    Bloom Filter
    静态作用域与动态作用域
    C 语言的可变参数表函数的设计
  • 原文地址:https://www.cnblogs.com/fdxjava/p/11629709.html
Copyright © 2020-2023  润新知