vue中Mock及Axios-Mock-Adapter模拟调试器的使用

  1. 首先在vue项目中安装axios&mockjs&Axios-Mock-Adapter
    axios官网
    mock官网
    axios-mock-adapter
使用npm安装
npm i axios  // 安装axios
npm i mockjs // 安装mockjs
(通过mock模拟假数据)
npm i axios-mock-adapter --save-dev //安装...你懂的
(axios-mock-adapte 即axios的模拟调试器,通过axios模拟调用后台)
  1. 文件目录

在这里插入图片描述

  1. 各文件中的内容
    (a)首先在mockdata/user文件中模拟一组假数据
import Mock from 'mockjs';

const Users = [];

for (let i = 0; i<10; i++) {
	User.push(Mock.mock({
		id: Mock.Random.guid(),
		name: Mock.Random.cname(),
		addr: Mock.mock('@county(true)'),
		'age|18-60': 1,
		brith: Mock.Random.date(),
		sex: Mock.Random.integer(0,1)
	}))
}
	
	export {Users}

(b)mock中内容

**mock.js**

     import axios from 'axios';
     import MockAdapter from 'axios-mock-adapter';

     import { Users } from '../mockdata/user.js'

     let _Users = Users;

     export default {
	 bootstrap() {
		let mock = new MockAdapter(axios);
		 
		mock.onGet('/user/list').reply(config => {
		
			return new Promise((resolve, reject) => {
				//resolve() 响应Promise 对象的状态, 从 未完成 变为成功 可传递成功的处理函数
				//reject()  响应Promise 对象的状态, 从 未完成 变为失败 可传递失败的处理函数
				setTimeout(() => {
					resolve([200, {
						msg: '请求成功',
						users: _Users,
						config: config.params
					}])
				},1000 )
			})
		})
	}
};

**index.js**

   import mock from './mock.js';
   export default mock;

(c ) api 文件

api.js
   
  import axios from 'axios'
  //主端口
  let base = '';
  export const getUserList = params => {return axios.get(`${base}/user/list`,{ params: params }) }
  //在调用getUserList()方法时,会向url发起get请求,并传递params作为本次axios请求配置
  
index.js

 import * as api from './api';
 export default api;

(d) 在组件中的使用

    methods:{
			getData() {
				console.log("点击了button")
				getUserList({id:1}) .then((res) => {
					console.log(res)
				})
			}
		}
  1. 这时当你发现一个神奇的现象时,请不要慌张

在这里插入图片描述
因为它请求成功了!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。 首先,你需要准备一个后端API接口,用于返回商城详情页所需要的数据。这个接口可以使用mock.js来模拟。下面是一个简单的示例: ```javascript import Mock from 'mockjs' // 模拟商品详情数据 Mock.mock('/api/goods/detail', 'get', { code: 200, msg: 'success', data: { id: '@id', name: '@ctitle(10, 20)', price: '@integer(100, 5000)', desc: '@cparagraph(2, 4)', image: '@image("200x200", "#50B347", "#FFF", "Mock.js")', detail: '@cparagraph(10, 20)' } }) ``` 上面的代码,我们使用Mock.js来模拟了一个商品详情接口,返回了一个包含商品id、名称、价格、描述、图片和详情的JSON对象。 接下来,你需要使用axios来发送请求,获取接口数据,并在vue组件展示。下面是一个简单的示例: ```vue <template> <div> <h2>{{ goods.name }}</h2> <p>价格:{{ goods.price }}元</p> <img :src="goods.image" alt=""> <p>{{ goods.desc }}</p> <div v-html="goods.detail"></div> </div> </template> <script> import axios from 'axios' export default { data() { return { goods: {} } }, mounted() { this.getGoodsDetail() }, methods: { getGoodsDetail() { axios.get('/api/goods/detail').then(res => { if (res.data.code === 200) { this.goods = res.data.data } }) } } } </script> ``` 上面的代码,我们使用axios发送了一个GET请求,获取了商品详情数据,并将数据赋值给了goods属性。在vue模板,我们使用了{{}}语法来展示数据,同时使用v-html指令来展示商品详情的HTML内容。 以上就是使用vuemockaxios实现商城详情页的基本流程。当然,这只是一个简单的示例,实际开发还需要处理一些异常情况、添加loading等。希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值