• 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
  • 相关阅读:
    AX2009直接交运的bug
    数据库日志
    新蛋中国最新的分类导航,右侧展开菜单,可以修改向左或者向右展开
    用图片代替滚动条的代码
    新蛋网的大图展示效果,缩略图点击显示大图,上一个下一个
    Banner 切换,大小图不同,支持FF和OPERA,IE系列
    下拉菜单,支持所有浏览器
    电容选型
    000.数字电子技术分类
    Altium design16设计技巧
  • 原文地址:https://www.cnblogs.com/xwtbk/p/11058888.html
Copyright © 2020-2023  润新知