当前位置: 首页 > news >正文

uniapp 配置并使用 VueX


 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

uni-app 内置了 VueX 


  • 1、创建需要的文件

  1.  右键点击 根目录【我的是 uni-shop】,然后新建 目录,命名为 store
  2. 右键点击刚刚建立的 store 文件夹,然后新建 js 文件

创建某个store模块 ,例如存储购物车数据的 cart.js

  • 2、初始化 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({// TODO:挂载 store 模块modules: {},
})// 4. 向外共享 Store 的实例对象
export default store

在 main.js 中导入 store 实例并挂载 

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

在 cart.js 中,初始化如下的 vuex 模块:

export default {// 为当前模块开启命名空间namespaced: true,// 模块的 state 数据state: () => ({// 购物车的数组,用来存储购物车中每个商品的信息对象// 每个商品的信息对象,都包含如下 6 个属性:// { goods_id, goods_name, goods_price, goods_count, goods_small_logo, goods_state }cart: [],}),// 模块的 mutations 方法mutations: {},// 模块的 getters 属性getters: {},
}

在 store/store.js 模块中,导入并挂载购物车的 vuex 模块,示例代码如下

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/cartm_cart: moduleCart,},
})export default store

 在 xxx.vue 页面中,修改 <script></script> 标签中的代码如下:

// 从 vuex 中按需导出 mapState 辅助方法
import { mapState } from 'vuex'export default {computed: {// 调用 mapState 方法,把 m_cart 模块中的 cart 数组映射到当前页面中,作为计算属性来使用// ...mapState('模块的名称', ['要映射的数据名称1', '要映射的数据名称2'])...mapState('m_cart', ['cart']),},// 省略其它代码...
}

 

以上就是这么使用的,和之前学vue时,用法一样

http://www.lryc.cn/news/150519.html

相关文章:

  • vue v-on 艾特@
  • 【Ajax】发送跨域的POST请求时,浏览器会先发送一次OPTIONS请求,然后才发送原本的POST请求
  • np.numpy, np.reshape, np.cumsum方法速查
  • 七、Kafka-Kraft 模式
  • jvm开启远程调试功能;idea远程debug
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR视频平台添加萤火云设备的具体操作步骤
  • vue 加载图片不显示
  • Java for循环每次都通过list.size()和 string.length()获取大小性能
  • 面试题 08.01. 三步问题
  • springboot添加SSL证书,支持https与http
  • 【AI】《动手学-深度学习-PyTorch版》笔记(二十):图像增强、微调
  • Vulnhub: Ragnar Lothbrok: 1靶机
  • Ubuntu 20.04 Server配置网络
  • jmeter 线程组
  • springboot集成logback
  • 【从互联网商业思维的角度分析商业模式在国内各大互联网产品的运用】
  • Leetcode394 字符串解码
  • git学习笔记 | 版本管理 - 分支管理
  • pytest---添加自定义命令行参数(pytest_addoption )
  • Flutter开发- iOS 问题CocoaPods not installed or not in valid state
  • leetcode 1207. 独一无二的出现次数
  • linux C编程 获取系统时间
  • Golang 中如何判断两个结构体相等
  • code 架构
  • Nuxt 菜鸟入门学习笔记五:CSS 样式
  • java企业工程管理系统源码之提高工程项目管理软件的效率
  • 蓝桥杯 2240. 买钢笔和铅笔的方案数c++解法
  • 中间件环境搭建配置过程解读
  • Pytest 自定义HOOK函数
  • VUE笔记(六)vue路由