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

uniapp-商城-29-vuex 关于系统状态的管理

按照我们前面讲的,vuex,的使用方式:

步骤如下:

1 先创建store  文件夹

2 在 store 中  创建一个 index.js

3、 在 store 中,创建一个modules文件夹

4、在store中,创建一个getters.js

5、在modules文件夹 创建一个system.js文件

6、在index.js中:代码如下

就是导入和创建,并导出

导入vuex 和system,getters 

创建store 并导出 store


import Vue from "vue"
import Vuex from "vuex"
Vue.use(Vuex)   //再vue安装vueximport  system from "@/store/modules/system.js"
import  cars from "@/store/modules/cars.js"
//上面三个必须写 ,创建getters.js  并导入     但是getters.js 中是暴露 modules 中js 的state   便于页面使用
import getters from "./getters"   //导入getter   然后再去使用的页面vue 导入getters   	import {mapState,mapMutations,mapGetters} from "vuex"const store = new Vuex.Store({getters,   //实例化 getters  不然vue页面用不了modules:{system,cars},
})export default store;  // 创建好该文件要再main.js中配置
/*
//start   这样就可以对该store进行全局挂载 所有页面使用
import store from '@/store'
//这样就可以对该store进行全局挂载 所有页面使用
Vue.prototype.$store=store
//end   这样就可以对该store进行全局挂载 所有页面使用
--------------
然后再使用页面导入:
import {mapState,mapMutations,mapGetters} from "vuex"//导入vuex
-----------------再进行计算*//*computed:{//这里两个方法都可以获取到数据,前面太麻烦就封装了一个getters//后一个通过getters 获取的// 第一种 没有使用 getters ...mapState({vuexHeight:state=>state.system.vuexHeight  //这样就能获取到该值  但是太麻烦  所以我们要改用 getters来获取  在store中准备getters.JS文件}),//第二种 有使用 getters ...mapGetters(["vuexHeight"])},*/

7 当然这里还需要将其导入到main.jS中  ,全局导出使用,main.js 如下方式:
/*
import store from '@/store'
//这样就可以对该store进行全局挂载 使用
Vue.prototype.$store=store
*/

8、在 system.js中的代码和操作

把前面在页面中计算过的过程,放到这里

8.1 获取系统基本信息,获取状态栏(信号、电量、时间等等),获取胶囊按钮的高度,实例化system 包含基本的数据 state ,设置system中的方法(在 mutations)

9、getters中的处理,就是把那些需要计算且 需要暴露给外面页面调用的变量进行处理

9、页面中进行使用

9.1 shop页面使用vuex数据:

这里就使用了getter 中暴露的totalNumValue;以及使用了system.js中的方法(方法不需要getters 暴露) setfoldState

使用vuex:需要 computed 获取常量,methods获取方法

        computed: {
            ...mapGetters(["totalNumValue"])
        },


        methods: {
            ...mapMutations(["setfoldState"]),

9.2 shop-headBar 组件中的使用:

mapGetters中 computed 获取常量

computed: {
            ...mapGetters(["StatusBarHeight","TitleBarHeight","bodyBarHeight","totalHeight","foldState"])
        },

mounted 中就不需要再计算["StatusBarHeight","TitleBarHeight","bodyBarHeight","totalHeight","foldState"]   可以删除掉

http://www.xdnf.cn/news/571.html

相关文章:

  • 嵌入式单片机开发问题:Undefined symbol _HAL_RCC_GPIOB_CLK_ENABLE
  • Matlab 基于模型参考自适应法和SVPWM的异步电机控制
  • Kubernetes(k8s)学习笔记(二)--k8s 集群安装
  • 机器学习(神经网络基础篇)——个人理解篇6(概念+代码)
  • 【实战中提升自己】内网安全部署之dot1x部署 本地与集成AD域的主流方式(附带MAC认证)
  • UE5的BumpOffset节点
  • C++选择排序原理及实现
  • Python带有else子句的循环语句
  • 动态内存管理
  • [dp20_完全背包] 介绍 | 零钱兑换
  • PSN港服跳过生日找回密码(需要英语对话,需要注册的id)
  • 超大文件处理——文件强制切割:突破存储传输限制,提升数据处理效能—星辰大文化术——未来之窗超算中心
  • 小样本学习和元学习
  • STM32学习笔记汇总
  • 图 - 最短路径算法 -- Dijkstra -- Bellman-Ford -- Floyd-Warshall
  • 每日OJ_牛客_最小差值_排序_C++_Java
  • 链表面试题
  • element-plus样式失效的原因总结
  • Linux 桌面环境 LXQt 2.2 发布
  • 放松大脑的方法
  • dev_set_drvdata、dev_get_drvdata使用详解
  • 加密与解密完全指南,使用Java实现
  • 图 - 最小生成树算法 - Kruskal - Prim
  • 基于有效样本数的类别平衡损失 (Class-Balanced Loss, CVPR 2019)
  • AOSP的Doze模式-LightIdle初识
  • 企业级RAG选择难题:数据方案的关键博弈
  • Mysql从入门到上手(一)-Mysql安装和Navicat安装及使用.
  • 【Python标准库】数学相关的9个标准库
  • 基于模态关系理解的无人机视觉语言导航模型
  • 解决Ubuntu图形化界面操作适配问题