-
什么是 Vuex
- Vuex 是专门为 Vue 开发的一个状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
- 上面是官方的说法,我自己的理解就是:Vuex 是一个状态存储器,可以将自己 Vue 开发中的数据存入,然后在整个 Vue 项目任何地方都能够获取到该数据。
-
Vuex 中的五大概念
- State 池(数据源)
- Getters 查(自定义状态)
- Mutation 改(真正修改状态的动作)
- Action 触发修改行为(可异步)
- Module 可同时拥有多个数据源(池)
-
导出 store
每一个 Vuex 应用的核心就是 store(仓库)。store 基本上就是一个容器,包含着应用中大部分状态(state) 。在 Vuex 中状态是响应式的,当 store 中的状态发生改变时,使用改状态的组件的值也会相应的更新。改变状态的办法是显示的提交(commit)Mutation(变化),这样能使我们更好的追踪每一个状态的变化。
import Vuex from 'Vuex' const store = new Vuex.store({ state:{ age: 18 },//该store存储状态的地方 mutations:{ addAge(state){ store.age++ } },//修改数据的方法 actions:{ addAge({commit}){ commit('addAge') } }//提交mutation }) export default store
-
获取数据源的数据
第一种方法:
beforCreate(){ console.log(this.$store.state.age) }
-
第二种方法:
定义 store 下的 getters
getters: { getAge(state){ return state.age + '岁' } }
使用如下:
computed: { age(){ return this.$store.getters.getAge } }
-
-
改变数据源的数据
先定义 mutations 中的方法和 actions 中的方法:mutations:{ subAge(state){ state.age-- } }, actions:{ subAge({commit}){ commit('subAge') } }
再从组件中调用:
methods:{ ...mapActions:([ 'subAge'//将 'this.subAge()' 映射为 'this.$store.dispatch('subAge')' ]), sub(){ this.subAge() } }
上面是使用了 actions 调用的 mutations 中的 subAge() 方法,好处是可以进行异步操作。
下面的是不适用 actions ,直接调用 mutations:
methods:{ ...mapMutations: ([ 'subAge'//将 'this.subAge()' 映射成 'this.$store.commit('subAge')' ]), sub(){ this.subAge() } }
近期热议
推荐标签 标签
-
支付宝
29 引用 • 347 回帖
支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。
-
人工智能
163 引用 • 310 回帖
人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。
-
又拍云
20 引用 • 37 回帖 • 575 关注
又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。
- Kotlin
-
OpenCV
15 引用 • 36 回帖 • 1 关注
-
SpaceVim
3 引用 • 31 回帖 • 120 关注
SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
即用的 Vim-IDE。 -
导航
43 引用 • 177 回帖
各种网址链接、内容导航。
-
OnlyOffice
4 引用 • 20 关注
-
Webswing
1 引用 • 15 回帖 • 642 关注
Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用 。
-
SSL
70 引用 • 193 回帖 • 408 关注
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。
-
安装
132 引用 • 1184 回帖 • 1 关注
你若安好,便是晴天。
-
Latke
71 引用 • 535 回帖 • 829 关注
Latke 是一款以 JSON 为主的 Java Web 框架。
-
WiFiDog
1 引用 • 7 回帖 • 611 关注
WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。
-
前端
245 引用 • 1338 回帖
前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。
-
HBase
17 引用 • 6 回帖 • 60 关注
HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。
-
招聘
189 引用 • 1057 回帖 • 2 关注
哪里都缺人,哪里都不缺人。
-
IBM
17 引用 • 53 回帖 • 146 关注
IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。
-
禅道
6 引用 • 15 回帖 • 23 关注
禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。
-
flomo
6 引用 • 141 回帖
flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。
-
Excel
31 引用 • 28 回帖 • 2 关注
-
Windows
227 引用 • 476 回帖 • 1 关注
Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。
-
ReactiveX
1 引用 • 2 回帖 • 182 关注
ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。
-
Ant-Design
17 引用 • 23 回帖 • 1 关注
Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。
-
大数据
93 引用 • 113 回帖
大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
-
微软
8 引用 • 44 回帖 • 2 关注
微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。
-
SMTP
4 引用 • 18 回帖 • 634 关注
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。
-
分享
248 引用 • 1794 回帖 • 2 关注
有什么新发现就分享给大家吧!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于