尚品汇(六)——mockjs模拟数据

一、mockjs模拟数据

使用步骤:

1.在项目当中src文件夹中创建mock文件夹

2.第二步准备JSON数据(mock文件夹中创建相应的json文件,这里轮播图建立banner.json)

格式化一下,别留有空格(跑不起来的)

[{
        "id": "1",
        "imgUrl": "/images/banner1.jpg"
    },
    {
        "id": "2",
        "imgUrl": "/images/banner2.jpg"
    },
    {
        "id": "3",
        "imgUrl": "/images/banner3.jpg"
    },
    {
        "id": "4",
        "imgUrl": "/images/banner4.jpg"
    }
]

3.把mock数据需要的图片放置到public文件夹中

public文件夹在打包的时候,会把相应的资源原封不动打包到dist文件夹
在这里插入图片描述

4.创建mockSerer.js通过mockjs插件并创建请求实例

在项目中要使用mock,要先安装,安装命令如下

# 安装
npm install mockjs

mock就是模拟的意思,我们这里的数据都是模拟的,那发请求也要是模拟的,所以要建一个mock的api
在src/api/下新建mockAjax.js文件

// 利用axios进行二次封装
import axios from 'axios'
// 利用axios的creat方法创建一个axios实例,requests就是axios只不过要配置一下
const requests = axios.create({
        baseURL: '/mock', //基础路径发送请求的时候就不用配置api了
        timeout: 5000, //代表超时时间5s
    })

5.在api/index.vux下暴露

// 引入封装的mockaxios
import mockRequests from "./mockAjax";
//获取banner(Home首页轮播图接口)
export const reqGetBannerList = () => mockRequests.get("/banner");

6.配置mock

在src/mock中新建mockServer.js文件

// 先引入mockjs模块

import Mock from 'mockjs'
//把JSON数据格式引入进来[JSON数据格式根本没有对外暴露,但是可以引入]
//webpack默认对外暴露的:图片、JSoN数据格式
import banner from './banner.json'
//mock数据:第一个参数请求地址第二个参数:请求数据
Mock.mock("/mock/banner", { code: 200, data: banner }) //模拟首页大的轮播图的数据

7.mockServer.js文件在入口文件中引入

//引入MockServer.js----mock数据
import "@/mock/mockServe";

二、获取轮播图数据

1.在仓库进行配置

路径:\src\store\home.js

//1.引入reqGetBannerList
import {  reqGetBannerList } from '@/api/index'
//2.创建state接收
const state = {
    categoryList: [],
    bannerList: [],
    floorList: []
}
//3在action中写异步请求
 // 获取首页轮播图的数据
 const actions = {
    async getBannerList({ commit }) {
        // console.log('在向服务器发送请求获取轮播图的数据');
        let result = await reqGetBannerList();
        // console.log(result)
        if (result.code == 200) {
            commit("GETBANNERLIST", result.data);
        }
    }
    }
    //4.在mutation
    const mutations = {
     GETBANNERLIST(state, bannerList) {
        state.bannerList = bannerList
            // console.log('在修改仓库中的bannerList数据');
    }
    }

2.在ListtContainer组件中引入和计算

\src\pagaes\Home\ListContainer\index.vue

import { mapState } from "vuex";
 computed: {
    ...mapState({
      bannerList: (state) => state.home.bannerList,
    }),
  },

3.在ListtContainer组件中进行挂载

export default {
  mounted() {
    this.$store.dispatch("getBannerList");
    }
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_52559388

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值