在uniapp中使用Vuex并不像Vue一样需要安装什么的,uniapp中已经为我们内置了Vuex的使用环境,我们只需要建立相关文件并引入就OK了,下面上代码及uniapp的完整H5实例。
首先在根目录下创建store目录在里面创建index.js;
在index.js文件中的代码
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { hasLogin: false, userInfo: {} }, mutations: { login(state, provider) { state.hasLogin = true; state.userInfo = provider; uni.setStorage({ //缓存用户登陆状态 key: 'userInfo', data: provider }) }, logout(state) { state.hasLogin = false; state.userInfo = {}; uni.removeStorage({ key: 'userInfo' }) } }, actions: { } }) export default store
然后在main.js中引用挂载
import Vue from 'vue' import App from './App' import store from './store' Vue.config.productionTip = false Vue.prototype.$store = store App.mpType = 'app' const app = new Vue({ store, ...App }) app.$mount()
在页面中使用 在script中引入
import {mapState,mapMutations} from 'vuex';
然后mapState必须写在 computed中
<view>{{position}}</view>//使用vuex中的值 export default { data() { return { address: "", } }, computed: mapState(['position', 'userData']) }
mapMutations写在methods里面
methods: { ...mapMutations(['getPosition', 'getUserData']) },
下面看一下uniappH5实例,大家可以点击zip下载:H52021dll.zip
例子中使用vuex记录底部导航的当前点击位置
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!