vue 使用mock 模拟后台数据

1、安装mockjs

npm i mockjs

2、在src目录下创建mock文件夹,在里面创建.json文件 例:src/mock/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配置:src/mock/mockServer.js

import Mock from 'mockjs'
import banner from './banner.json'

Mock.mock('/mock/banner','get',{code:200,data:banner})

4、main.js中引入mockServer.js让其参与项目运行

import './mock/mockServer'

5、创建 mockAjax.js, src/api/mockAjax.js 其中的baseURL为:/mock

/* 
	该文件是对axios的二次封装,目的:让整个项目发送ajax请求时,通用的配置不用一遍一遍重复编写了
	注意:本文件专门用于mock请求!!!!
*/
import axios from 'axios'

//创建一个axios实例对象,以后整个项目都用这个实例发请求
const mockAjax = axios.create({
  baseURL: '/mock', //请求基本路径
  timeout: 1000, //超时时间
});

export default mockAjax


6、src/api/index.js

import mockAjax from './mockAjax'

//请求轮播图数据(模拟的数据)
export const reqBannerList = () => mockAjax.get('/banner')

7、至此,mock的模拟搭建完毕,下面在vuex中使用

import {reqBannerList} from '@/api'

const actions = {
	//获取主页轮播图的action(模拟)
	async getBannerList({commit}){
		const result = await reqBannerList()
		if(result.code === 200){
			commit('SAVE_BANNER_LIST',result.data)
		}else{
			alert(result.message)
		}
	}
}

const mutations = {
	//保存轮播图数据
	SAVE_BANNER_LIST(state,list){
		state.bannerList = list
		// console.log('轮播数据存进来了')
	}
}

const state = {
	bannerList:[], //轮播图数据
}
const getters = {}

export default {
	namespaced:true,
	actions,
	mutations,
	state,
	getters
}
<script>
import { mapState } from 'vuex'
export default {
  computed: {
    ...mapState('home', ['bannerList'])
  },
  mounted () {
    // 组件一挂载完就分发一个action用于请求轮播图数据
    this.$store.dispatch('home/getBannerList')
  }
}
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值