Vuex在uniapp中的使用

文章目录

一、Vuex概述

[1.1 官方解释](#1.1 官方解释)

[1.2 大白话](#1.2 大白话)

[1.3 组件间共享数据的方式](#1.3 组件间共享数据的方式)

[1.4 再看Vuex是什么](#1.4 再看Vuex是什么)

[1.5 使用Vuex统一管理好处](#1.5 使用Vuex统一管理好处)

二、状态管理

[2.1 单页面状态管理](#2.1 单页面状态管理)

[2.2 多页面状态管理](#2.2 多页面状态管理)

[2.3 全局单例模式](#2.3 全局单例模式)

[2.4 管理哪些状态](#2.4 管理哪些状态)

三、Vuex的基本使用

[3.1 安装](#3.1 安装)

[3.2 导入](#3.2 导入)

[3.3 创建store对象](#3.3 创建store对象)

[3.4 挂载store对象](#3.4 挂载store对象)

四、Vuex的核心概念

[4.1 State](#4.1 State)

[4.2 Mutation](#4.2 Mutation)

[4.3 Action](#4.3 Action)

[4.4 Getter](#4.4 Getter)

[4.5 Modules](#4.5 Modules)

[4.6 优化](#4.6 优化)


一、Vuex概述

1.1 官方解释

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。

它采用集中式存储管理 应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化

  • Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

在这里插入图片描述

1.2 大白话

状态管理模式、集中式存储管理这些名词听起来就非常高大上,让人捉摸不透。

其实,可以简单的将其看成把需要多个组件共享的变量全部存储在一个对象里面。

然后,将这个对象放在顶层的Vue实例中,让其他组件可以使用。

那么,多个组件是不是就可以共享这个对象中的所有变量属性了呢?

如果是这样的话,为什么官方还要专门出一个插件Vuex呢?难道我们不能自己封装一个对象来管理吗?

当然可以,只是我们要先想想VueJS带给我们最大的便利是什么呢?没错,就是响应式。

如果你自己封装实现一个对象能不能保证它里面所有的属性做到响应式呢?当然也可以,只是自己封装可能稍微麻烦一些。

不用怀疑,Vuex就是为了提供这样一个在多个组件间共享状态的插件,用它就可以了。

1.3 组件间共享数据的方式

父向子传值:v-bind属性绑定

子向父传值:v-on事件绑定

兄弟组件之间共享数据:EventBus

$on 接收数据的组件

$emit 发送数据的组件

上述只适合小范围内数据共享,如果是复杂应用的话,就不再合适了。

1.4 再看Vuex是什么

Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享

如图:

在不使用Vuex进行状态管理时,如果要从最下面的紫色组件传递数据的话,还是比较繁琐,也不便于维护。

在使用Vuex进行状态管理时,只需要一个共享Store组件,紫色组件将数据写入Store中,其他使用的组件直接从Store中读取即可。

在这里插入图片描述

1.5 使用Vuex统一管理好处

能够在Vuex中集中管理共享的数据,易于开发和后期维护

能够高效地实现组件之间的数据共享,提高开发效率

存储在Vuex中的数据都是响应式的,能够实时保持数据与页面的同步

相关推荐
樱花落木兰16 分钟前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
wuyk55519 分钟前
Python 网络爬虫入门到实战 第 04 章:请求头、UA 伪装、超时、异常处理、基础反爬绕过
开发语言·爬虫·python
流形填表24 分钟前
题库去重实战:基于题干指纹的重复题清理
开发语言·c#
\光辉岁月/26 分钟前
3.java运算符
java·开发语言
知识分享小能手33 分钟前
C++ 学习教程,从入门到精通,string类和标准模板库 — 完整知识点详解(16)
开发语言·c++·学习
qq_4017004138 分钟前
Qt 炫酷曲线,图表,2D/3D开源库
开发语言·qt
liangshanbo12151 小时前
面试题:线上 JavaScript 报错如何快速定位到源码?
开发语言·javascript·ecmascript
weixin_440730501 小时前
迭代器Iterator(列表生成器、可迭代的如何生成迭代器)
开发语言·python
朝朝辞暮i1 小时前
C++ 第 31C 课:Subscriber 到底是什么
开发语言·c++·算法
weixin_440730502 小时前
内置函数、json文本、pickle二进制
开发语言·python·json