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) } }) }) }