uniapp中引入VueX

uniapp中方内置 vuex,所以 不需要 npm下载,直接引用就行。

1. 在根目录上新建 store 目录,并在此目录下新建 store.js 文件,在此文件下写如下代码:

// 1. 导入 Vue 和 Vuex
import Vue from "vue"
import Vuex from "vuex"
 
 
// 2. 将 Vuex 安装为 Vue 的插件
Vue.use(Vuex)
 
// 3. 创建 Store 的实例对象
const store = new Vuex.Store({
// 挂载 store 模块
    modules:{}
})
 
// 向外共享 Store 的实例对象
export default store

2.在 main.js 中导入 store 实例对象并挂载到 Vue 的实例上:

// 1. 导入 store 的实例对象
import store from './store/store.js'
 
// 省略其它代码...
 
const app = new Vue({
  ...App,
  // 2. 将 store 挂载到 Vue 实例上
  store,
})
app.$mount()

这样既可使用。

3. VueX的使用

3.1 直接使用

<template>
  <view>
    <text>{{ count }}</text>
    <button @click="incrementCount">增加</button>
  </view>
</template>

<script>
export default {
  computed: {
    // 通过计算属性将 state 中的 count 映射到组件
    count() {
      return this.$store.state.count;
    },
  },
  methods: {
    // 触发 action 来增加计数
    incrementCount() {
      this.$store.dispatch('increment');
    },
  },
};
</script>

在上述代码中,我们使用computed属性将VueX中的count状态映射到组件的数据 count 中,这样当count发生变化时,页面会自动更新。在methods中,我们使用$store.dispatch来触发VueX的increment action。

通过以上步骤,你就可以在Uni-app中使用VueX来进行状态管理了。通过Vuex的状态管理机制,可以方便地在组件之间共享和修改数据。

3.2 使用 map 映射

在Uni-app中,你可以使用VueX提供的mapState、mapGetters、mapMutations和mapActions辅助函数来简化对VueX状态的映射。这些辅助函数可以帮助你在组件中更方便地引入和使用VueX中的状态、getters、mutations和actions。

以下是在Uni-app中使用mapState、mapGetters、mapMutations和mapActions的步骤:

1. 导入需要的辅助函数。

// 在组件的script标签中导入
import { mapState, mapGetters, mapMutations, mapActions } from 'vuex';

2. 在组件的computed属性中使用mapState将VueX中的状态映射到组件的计算属性。

computed: {
  ...mapState({
    count: state => state.count,
    // 其他需要的状态
  }),
}

在上述代码中,我们使用mapState函数将VueX中的count状态映射到组件的count计算属性中。这样,在页面中就可以直接使用this.count来获取VueX中的count状态。

3. 在组件的computed属性中使用mapGetters将VueX中的getters映射到组件的计算属性。

computed: {
  ...mapGetters([
    'completedTodos',
    // 其他需要的getters
  ]),
}

在上述代码中,我们使用mapGetters函数将VueX中的completedTodos getter映射到组件的计算属性中。这样,在页面中就可以直接使用this.completedTodos来获取VueX中的completedTodos getter。

4. 在组件的methods属性中使用mapMutations将VueX中的mutations映射为组件的方法。

methods: {
  ...mapMutations([
    'increment',
    // 其他需要的mutations
  ]),
}

在上述代码中,我们使用mapMutations函数将VueX中的increment mutation映射为组件的方法。这样,在页面中就可以直接使用this.increment()来触发VueX中的increment mutation。

5. 在组件的methods属性中使用mapActions将VueX中的actions映射为组件的方法。

methods: {
  ...mapActions([
    'fetchData',
    // 其他需要的actions
  ]),
}

在上述代码中,我们使用mapActions函数将VueX中的fetchData action映射为组件的方法。这样,在页面中就可以直接使用this.fetchData()来触发VueX中的fetchData action。

通过以上步骤,你可以在Uni-app中使用mapState、mapGetters、mapMutations和mapActions来简化对VueX状态的映射和使用,提高开发效率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值