uniapp中使用vuex

创建store文件夹

在main.js中引入使用
在这里插入图片描述
在store文件夹中创建一个index.js文件,用于统一管理不同逻辑使用vuex

import homeStore from './home.js'
import carManager from './car-manager.js'
import storeStore from './storeList.js'
import vipCradStore from './vipCrad.js'
Vue.use(Vuex)
const store = new Vuex.Store({
	modules: {
		// then we reference it
		appStore,
		homeStore,
		carManager,
		// 门店信息
		storeStore,
		// 会员
		vipCradStore
	},
})

export default store
在平时的项目中不同的逻辑之间我们可能需要调用store中不同.js文件中的逻辑,继续刷新数据,比如在wxAppletPay中支付完成可以通过使用
直接调用index.js文件中modules中的vipCradStore中cradInfo这个函数
store.dispatch('homeStore/getOrderDetail', dataInfo);
import {Api} from '../api/api.js'
import store from './index.js';
import {
	hideLoading, //关闭加载中
	stopPullDownRefresh,
	showLoading,//开启加载中
	showToast,//软提示
	GetDistance,//计算KM
	hideLoadingTime, //关闭加载中并且提示
} from '../utils/orderCof.js'
const state = {
	pgType:[],
	myGold:[],
	discount:0
}
const mutations = {
	TYPEINFO: (state, data) => {
		state.pgType = data;
	},
	MYGOLDDETAILS: (state, data) => {
		uni.setStorageSync('myGold',data)
		state.myGold = data;
	},
	CRADINFO: (state,data) => {
		if(data != 0) {
			state.discount = data
		} else {
			state.discount = 0
		}
	}
}

const actions = {
	// 支付
	async wxAppletPay({
		commit
	},data) {
		showLoading()
		const [error,res] = await Api.wxAppletPay(data)
		let that = this
		if(res['data']['code'] == 0) {
			hideLoading();
						store.dispatch('homeStore/getOrderDetail',{
							...res['data']['resultData']
					}
	},
	// 获取积分
	async myGoldDetails({
		commit
	},data) {
		consloe.log(data)
	},
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}


在main.js中引入

import Vue from 'vue'
import App from './App'
//引入vuex
import store from './store/index.js' 
Vue.config.productionTip = false
App.mpType = 'app'
uni.onAppShow((res) => {
})
const app = new Vue({
//使用
store,
...App
})
app.$mount()
在vue文件中的使用vuex定义方法
可以直接调用在vipCradStore中定义的myGoldDetails方法
export default {
methods: {
// 获取金币和余额信息
my_gold_details() {
		this.$store.dispatch('vipCradStore/myGoldDetails'{name:'hello word'})
},
}
}
在vue文件中的使用vuex获取数据
import {
		mapState
} from 'vuex';


export default {
computed: mapState({
			serverUrl: state => state.homeStore.serverUrl,
			ItemData: state => state.storeStore.ItemData
	}),
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值