zoukankan      html  css  js  c++  java
  • vue学习之路 —— vue+mock 前后端分离随机生成数据

    写在前面的话:

      自学Vue中,手写json数据,被同事看到,问我你怎么不用mock,忽然觉得自己太落后了

      永远不能停止学习

      啊啊啊

      立马上手去学习mock,真的很方便

      学习过程中还是遇到了很多问题,最终搞出来了,在此记录,防止自己忘记

    ——————————————————————————————————————————————————————————

    一、安装mock

      npm install mockjs --save-dev

    二、实例(举个小栗子)

      1、新建一个mock文件夹,里面创建index.js,table.js()

      目录如下:

      

     

      2、在main.js中引入mock

    import '@/mock/index.js';
    

      

      3、在mock/index.js中写如下代码:  

    import mockjs from 'mockjs';
    
    import TableApi from './table.js' //引入生成数据的js
    
    const Mock = require('mockjs') // Mock函数
    // 使用拦截规则拦截命中的请求
    
    Mock.mock('api/getTableData','get',TableApi.getTableData);//此处url要与使用数据的组件中请求的url一致
    //api/getTableData 为组件页面请求的url,拦截此url,使用table.js中的getTableData生成的虚拟数据
    export
    default mockjs

      

      4、在mock/table.js中写入如下代码  

    ·

    import Mock from 'mockjs'
    
    const code = 200 // 状态码 项目同一
    
    export default{
      getTableData () {
        let data = Mock.mock({
          'list|10': [{
            'userID|+1': 1,
            'userName':'@cname',
            'date':'@date',
            'address':"@region"
          }]
        })
        return {
          code,
          data
        }
      }
    }

      5、在需要引入数据的组件内写如下代码(此处html使用了element)

    <template>
      <el-table
        :data="tableData"
        style=" 100%">
        <el-table-column
          prop="date"
          label="日期"
          width="180">
        </el-table-column>
        <el-table-column
          prop="userName"
          label="姓名"
          width="180">
        </el-table-column>
        <el-table-column
          prop="address"
          label="地址">
        </el-table-column>
      </el-table>
    </template>
    
    <script>
      export default {
        data() {
          return {
            tableData: []
          }
        },
        mounted(){
          this.createTable();
        },
        created(){
          //组件实例创建完成,此时dom还未生成
        },
        methods:{
          createTable(){
            let $this = this;
    //        getTableData(data)
            this.$axios.get('api/getTableData') //此处地址为mock/index.js文件中.mock函数中的路径
              .then(response => {
                let $data = response.data.data;
                $this.tableData = $data;
              })
          }
        }
      }
    </script>

      6、npm run dev运行,效果如下图

      

     

    TableApi.getTableData
  • 相关阅读:
    AWS 免费套餐
    UWP DEP0700: 应用程序注册失败。[0x80073CF9] 另一个用户已安装此应用的未打包版本。当前用户无法将该版本替换为打包版本。
    UWP 应用程序名称本地化以及商店显示名称本地化
    ES6知识整理(6)--Symbol函数
    【web前端】移动端控制台插件,手机端页面查看相关页面控制台信息
    ES6知识整理(5)--对象的扩展
    ES6知识整理(4)--数组的扩展
    【移动端web】软键盘兼容问题
    ES6知识整理(3)--函数的扩展
    ES6知识整理(2)--变量的解构赋值
  • 原文地址:https://www.cnblogs.com/xwtbk/p/11058888.html
Copyright © 2011-2022 走看看