【uni-app】使用vuex

1、在根目录新建store文件夹和相关文件

在这里插入图片描述

2、具体文件内容—/store/modules/cart.js


const state = {
	// 购物车的数组,用来存储购物车中每个商品的信息对象
	cart: [1,2,3]
}

const mutations = {
	SET_CART: (state, cart) => {
		state.cart = cart
	}
}

const actions = {
	changeCart({ commit }){
		commit('SET_CART', [4,5,6])
	}
}

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


3、具体文件内容—/store/idnex.js


import Vue from 'vue'
import Vuex from 'vuex' //uni-app已经带有vuex,所以直接引用即可
import cart from './modules/cart'
Vue.use(Vuex)

const store = new Vuex.Store({ 
	modules:{ //注册cart模块
		cart
	} 
})

export default store


4、main.js中挂载vuex


//省略其他代码
import store from './store/index'
//省略其他代码
const app = new Vue({
	...App,
	store
})
app.$mount()

5、在vue页面中使用

<template>
	<view>
		store中的cart值为:{{cart[0]}}{{cart[1]}}{{cart[2]}}
	</view>
</template>

<script>
	import {mapState,mapActions} from 'vuex'
	export default {
		data() {
			return {
				...
			}
		},
		computed:{
			//通过计算属性可以读取并实时监听状态的变化
			...mapState({
				cart(state){
					return state.cart.cart
				}
			})
		},
		mounted(){
			//调用changeCart改变cart值,或者进行自定义的逻辑操作
			this.changeCart()
		},
		methods: {
			//把mapActions的方法放到methods里
			...mapActions({ changeCart: 'cart/changeCart'})
		}
	}
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值