uniapp开发
1状态管理
ps:状态管理事实上就是一个容器,可以存储一些常用的变量和函数,有数据持久化的特性
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state:{
hasLogin:false,
userInfo:{}
},mutations:{
login(statu,provider)
{
state.hasLogin = true
state.userInfo.username = provider.username
state.userInfo.uid = provider.uid
state.userInfo.avatar = provider.avatar
state.userInfo.ram_code = provider.ram_code
//数据存储到本地
uni.setStorage({
key:'userInfo',
data:provider
})
},
logout(statu){
state.hasLogin = false
state.userInfo = {}
uni.removeStorage({
key:'userInfo'
})
}
}
}
});
export default store将store 注入到vue root实列中,把store实例注册到所有组件中

2 封装promise网络请求
// 封装promise网络请求
const BASE_URL = "http://love.ouyangke.net/"
export const myRequest = (options ) => {
const {
url,
method,
data,
timeout,
header,
} = options
// console.log(options);
return new Promise((resolve, reject) => {
uni.request({
header: header || {
"content-type": "application/x-www-form-urlencoded"
},
url: BASE_URL + url,
method: method || 'GET',
data: data || {},
timeout: timeout || 3000,
success: (res) => {
// const sign = uni.getStorageSync('sign')
if (res.statusCode !== 200) {
uni.showToast({
title: '请求数据失败',
icon: 'none',
duration: 1000
});
}
resolve(res)
},
fail: (err) => {
uni.showToast({
title: '请求数据失败',
icon: 'none',
duration: 1000
});
reject(err)
}
})
})
}