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
  • 相关阅读:
    Nginx模块开发(2)————下载文件
    Nginx模块开发(1)————类helloworld
    Nginx编译与安装
    初次认识Ngnix
    一个简单的wed服务器SHTTPD(9)————main函数文件,Makefile,头文件
    一个简单的wed服务器SHTTPD(8)———— URI分析
    一个简单的wed服务器SHTTPD(7)———— SHTTPD内容类型的实现
    一个简单的wed服务器SHTTPD(6)———— SHTTPD错误处理的实现
    一个简单的wed服务器SHTTPD(5)————服务器SHTTPD请求方法解析
    linux 权限管理
  • 原文地址:https://www.cnblogs.com/xwtbk/p/11058888.html
Copyright © 2011-2022 走看看