import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) // vue的插件机制 const navHeight = uni.getStorageSync('navHeight'); const statusbarHeight = uni.getStorageSync('statusbarHeight'); const menuButtonWidth = uni.getStorageSync('menuButtonWidth'); const token = uni.getStorageSync('token'); const userInfo = uni.getStorageSync('userInfo'); // Vuex.Store 构造器选项 const store = new Vuex.Store({ // 为了不和页面或组件的data中的造成混淆,state中的变量前面建议加上$符号 state: { // 用户信息 userInfo: userInfo || null, token: token || null, menuButtonWidth: menuButtonWidth || '0', statusbarHeight: statusbarHeight || '0', navHeight: navHeight || '0', }, mutations: { setHeight(state, val) { state.navHeight = val.navHeight state.statusbarHeight = val.statusbarHeight state.menuButtonWidth = val.menuButtonWidth uni.setStorageSync('navHeight', val.navHeight); uni.setStorageSync('statusbarHeight', val.statusbarHeight); uni.setStorageSync('menuButtonWidth', val.menuButtonWidth); }, SETTOKEN(state, val) { state.token = val uni.setStorageSync('token', val); }, SETUSERINFO(state, val) { state.userInfo = val uni.setStorageSync('userInfo', val); } }, actions: { // 获取状态高度 getHeight(context) { let res = uni.getMenuButtonBoundingClientRect() let status = uni.getSystemInfoSync() let menuButtonWidth = res.width let height = res.height let statusbarHeight = status.statusBarHeight let navHeight = res.height + (res.top - statusbarHeight) * 2; context.commit('setHeight', { statusbarHeight, navHeight, height, menuButtonWidth }) }, } }) export default store