uniapp配置vuex

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

注意:uniapp 配置 vuex 不需要 npm下载,内置的有,直接引用就行。

// 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. 创建 store 子模块,在 store 目录下创建 cart.js  文件,并写入如下代码:

export default {

// 为当前模块开启命名空间
    namespaced: true

// 模块的 state 数据
    state: () => ({

    cart: []
}),
    
// 模块的 mutations 方法
    mutations:{},

// 模块的 actions 方法

    actions:{},

// 模块的 getters 属性
    getters: {}
}

4. 将 cart.js 文件导入 store.js 文件挂载到 modules 内

import Vue from 'vue'
import Vuex from 'vuex'
// 1. 导入购物车的 vuex 模块
import moduleCart from './cart.js'

Vue.use(Vuex)

const store = new Vuex.Store({
  // TODO:挂载 store 模块
  modules: {
    // 2. 挂载购物车的 vuex 模块,模块内成员的访问路径被调整为 m_cart,例如:
    //    购物车模块中 cart 数组的访问路径是 m_cart/cart
    m_cart: moduleCart,
  },
})

export default store

5. 测试,随便找个页面 导入 vuex看看对不对

// 从 vuex 中按需导出 mapState 辅助方法
import { mapState } from 'vuex'

export default {
  computed: {
    // 调用 mapState 方法,把 m_cart 模块中的 cart 数组映射到当前页面中,作为计算属性来使用
    // ...mapState('模块的名称', ['要映射的数据名称1', '要映射的数据名称2'])
    ...mapState('m_cart', ['cart']),
  },
}

6. 页面使用,能看到的话就说明没问题了

<!-- 运费 -->
<view class="yf">快递:免运费 -- {{cart.length}}</view>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值