TA的每日心情 | 奋斗 2020-9-2 15:06 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
第一步:* }, X [& P: g$ n: g$ h
o) H+ e' {, q, p3 M* _ c; _首先引入axios" m7 x1 F# \3 F3 E: V6 x
4 {4 b- i; R# u然后创建两个文件夹api和http
# m5 P- u N( a* i
1 _$ \! Y5 j$ Q0 F. f6 }' lhttp.js 里面的
/ H3 U3 ? ? T! ?+ P3 l8 j% `' j/ h
复制代码
# x2 M% d1 I0 ~. I6 b, d1 import axios from ‘axios’;//引入axios6 y3 d5 O2 ~& w( G$ k7 ~( y
2
" m# P5 u6 q, t8 O) t1 N3 //环境的切换 开发环境(development)使用的是测试接口 和 生产环境(production)使用的是上线接口% i' B5 r% G# q0 o
4 if(process.env.NODE_ENV==‘development’){
, P( r4 j9 K7 Y/ M- G5 //设置默认路径
( u8 x3 h/ x1 W5 y6 axios.defaults.baseURL=‘http://120.53.31.103:84/’
( P* ]4 [3 T. o" H, j9 T! R7 }
* K( z) k2 U$ I5 z) Z$ e8 if(process.env.NODE_ENV==‘production’){( R+ f S5 N7 B
9 axios.defaults.baseURL=‘https://wap.365msmk.com/’+ Z# ]! v, z7 v3 f( e0 K
10 }
5 X# I9 i7 d# H, Z11 axios.defaults.timeout=5000;//加载不出来5秒之后就是加载失败
( U8 `, l& g- L0 N& b12 axios.interceptors.request.use(
9 ?0 @: B7 m# k4 w13 config=>{
# J; }8 ^$ P$ {$ e14 config.headers={DeviceType:‘H5’}//可每次发送请求之前的逻辑处理 比如判断token& ~; W7 n1 Y X- F
15 return config; \! M$ ?' v5 k+ P
16 }
0 C3 _; }& e9 G$ ] B17 )6 s' N# u* I% m% M& H7 v6 v2 Z7 j
18 // axios.interceptors.response.use(+ q% ]* P5 m+ Z2 s* x6 V2 e: z
19 // response=>{% c3 a$ i$ K5 }% b
20 // return response;
) }; z. n8 ]( B; b21 // },, Y2 Z( v- c, i5 d! ]! P0 h
22 // error=>{
3 f& A' z% b7 x1 I: |7 ]23 // if(error.response.status){
9 X: ], r: Y/ U7 ~3 {% P24 f% c( h; U* r9 B+ E# Z- }) Q, O
25 // }# \# F, ~* F: V2 U7 ]
26 // }
: X0 g( \; c5 d! g27 // )
0 P- D8 |) o2 ~7 c0 k, P+ `$ b28
5 ^ Q3 O0 c0 R; W29 // 使用promise返回axios请求的结果: Z, Y X R1 ]9 P
30 export function get(url, params) {) d% u$ @" F4 p; i4 c2 k# F3 E
31 return new Promise((resolve, reject) => {. |1 z! {, A8 q: ~
32 axios.get(url, {, D/ g! k& V3 e3 e# o; i3 A( I v
33 params:params
' s, \6 m* z: {! |% i34 }).then(res => {. P4 k0 X! O, l I
35 resolve(res)' ~* r) n H& M2 z# }+ y& V
36 }).catch(err => {
8 X4 w& i* ^& w$ V6 F" R37 reject(err)
0 ]7 t5 v0 \5 i6 S8 b6 N38 })
6 \# P" Q: S( L0 }) H. Q1 ~1 C39 })) b o: v2 n2 x1 d8 A, V
40 };5 q9 B- s/ I. j, \/ w4 W
41+ @/ b% ]* _) F" `* U7 L
42 export function post(url,params){
3 g+ P9 O4 ~' ^# c9 Q" i8 t43 return new Promise((resolve,reject)=>{
1 \+ G# {- M# c$ c8 c" u; v44 axios.post(url,params).then(res=>{7 ~9 F! N4 |8 B6 a
45 resolve(res.data)
; q% G) A$ |5 C- ]+ j! h46 }).catch(err=>{" z8 H& a' G# F* l- U" L! U$ h
47 reject(err.data)
* R/ C( i V; s1 B2 N48 })
% N7 q6 N( |, O49
& ~9 C# x, _! R& N1 A6 H" C! j50 })1 R9 G0 i9 J- b( x
51 }6 a. S" M/ U6 O4 ~
复制代码/ O, c1 y& l% z
api.js里面的: h+ P- \" W. C, h0 s' m" g2 |
( V. P6 ~, e3 y2 m
复制代码
) }. a9 \" H0 b/ i7 v! gimport { get, post } from “…/http/http” //引入封装好的get和post方法+ B/ Z1 ]0 i$ s% J$ ]
// 封装请求的方式5 _- F u7 J) k# [( M
export function getBanners() {//轮播
1 F+ X$ I t1 {5 Y+ L! Lreturn get(‘api/app/banner’)
( W& U1 U, [9 ^/ X' ?8 ^) n}! D+ v$ G+ g/ g* g- H
/ M6 O) _+ `) a7 }
export function getIndex(){//首页数据
4 a* i$ n2 Z) nreturn get(‘api/app/recommend/appIndex’)
' t- y5 w; F+ F6 s0 j6 g. d}
2 l. n" ?. T$ A9 B) _9 O9 Z复制代码
) H) x: m' f2 c* k' P q, r然后在vue里面的文件应用& s9 Z/ W3 T8 O( c$ k% @
5 N! V6 g1 w/ F6 o$ W0 T复制代码
8 N& _ R- q( { kimport { getBanners, getIndex } from “…/api/api”;//引入api里面定义的方法
% l: D. [0 H8 V4 Y2 t- S
, V; m, K; [9 w5 I1 D( N* g. Pasync mounted() {
4 r' P! l5 N/ }. W" u! kvar swiperr = await getBanners();) H& Y3 z2 M" t& Y: i5 C
console.log(swiperr.data.data);
, ?5 ]" Y4 j: s$ A6 S3 M9 u% ^, r0 [this.swipers = swiperr.data.data; //轮播图渲染/ N, ~4 i( P6 L; k3 ]
2 @( z6 G$ Q8 F. l9 w; `var strr = await getIndex();3 @8 o6 G! a0 y2 t5 j
console.log(strr); //明星讲师渲染
# k! J: ?0 k- ethis.strs = strr.data.data;5 @7 s: C: @9 D8 A1 a
console.log(this.strs);* C* z1 _. z( f0 j+ c- v! P
1
* j) C$ u1 F2 {" n# J2
" D( i% }/ q5 u+ t3
4 m2 z5 i" e/ V2 p41 |3 a+ X* y( C/ t" a5 n. g$ w" I3 b
}
. T8 i c& N3 Q0 `. {0 e
9 k' ]1 c4 E% T* y$ z |
|