对vuex的浅解
vuex是什么?
官网的解释是
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools,extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
而就我浅显的理解是
它类似一个html里面的全局变量,可运用于全局,而vue存储的东西,可以运用于vue所有的组件,方便与组件里面数据的接受与监听。
vuex 在项目中的使用【通过vue-cli 脚手架搭建的项目中】
安装
npm install vuex --save
在main.js中 引入
//main.js
import Vuex from 'vuex';
Vue.use(Vuex);
//创建一个store以便于在所有组件都能查询到vuex的数据
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++
}
}
});
//简单测试
//store.commit('increment')
//console.log(store.state.count);
//在vue实例中引用
export default new Vue({
el: '#app',
store,
components: { App },
template: '<App/>'
});
vuex核心概念的使用
//main.js
const store = new Vuex.Store({
//数据存储的字段
state: {
count: 0
},
//更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。
mutations: {
increment (state,value) {
state.count+=value
}
},
//可以理解为一个动作,它提交的是 mutation,而不是直接变更状态。
actions: {
increment (context,value) {
context.commit('increment',value)
}
},
//将数据返回出去,以便于组件中拿到count值
getters:{
getCounts:state =>state.count
}
});
//新建一个组件,假设命名为testDemo.vue
<template>
<div>
{{counts}}
</div>
</template>
<script>
export default {
name: 'testDemo',
data () {
return {
}
},
computed:{
//通过计算属性监听vuex里面 count的值
counts(){
return this.$store.getters.getCounts;
}
},
created(){
setTimeout(()=>{
//action 方法提交
this.$store.dispatch('increment',10)
},2000)
}
}
</script>
随后,可以将store在main.js中处理出来,src目录下新建一个文件夹命名为store,新建index.js,actions.js,getters.js,mutation-types.js,mutations.js
//index.js
import Vue from 'vue';
import Vuex from 'vuex';
import mutations from './mutations';
import actions from './actions';
import getters from './getters';
Vue.use(Vuex);
export const store = new Vuex.Store({
state: {
count: 1,
},
mutations,
actions,
getters
});
// mutation-types.js
export const INCREMENT="INCREMENT";
19
// action.js
import {
INCREMENT
} from './mutation-types';
export default {
[INCREMENT]({ commit, state },value) {
commit(INCREMENT,value);
},
};
// mutations.js
import {
testDemo.vue
<template>
<div>
{{counts}}
</div>
</template>
<script>
export default {
name: 'testDemo',
data () {
return {
}
},
computed:{
//通过计算属性监听vuex里面 count的值
counts(){
return this.$store.getters['INCREMENT'];
}
},
created(){
setTimeout(()=>{
//action 方法提交
this.$store.dispatch('INCREMENT',10)
},2000)
}
}
</script>
这样以来,逼格就立马高了一些
最后,文件的目录大概就长下图这个样子
对vuex的浅解的更多相关文章
- 从最大似然到EM算法浅解
从最大似然到EM算法浅解 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习十大算法之中的一个:EM算法.能评得上十大之中的一个,让人听起来认为挺NB的. ...
- 面试-1-C#浅解
面试-1 C#浅解众所周知c#是微软推出的一款完全没面向对象的编程语言,那么对象是什么?在现实生活中人们一提到对象首先想到的就是“情侣”!但是在我们的程序中对象是什么? 在程序中个能够区别于其他事 ...
- GIS历史概述与WebGis应用开发技术浅解
声明:本篇在李晓晖的<杂谈WebGIS>,补充更多的资料说明.基于地图二次开发一直断断续续在做,这里算是补充一下基本功把.其实对于前端,WebGis开发都是api,抄demo,改.GIS深 ...
- List根据某字段去重,以及compareTo 浅解
原文链接:https://blog.csdn.net/qq_35788725/article/details/82259013 Collections.sort可对集合进行排序 根据List里面某个字 ...
- Vuex state 状态浅解
对于Vuex中的state里面的理解总是有些欠缺,机制似乎理解了.但是还有很多的不足,在这就先浅谈下自己的理解. vuex 机制中,定义了全局Store,在各个vue组件面的this.$store指向 ...
- vuex基础详解
vuex入门 安装 vuex为我们提供了两种使用方法 直接引入 vuex下载地址:https://unpkg.com/vuex@2.0.0 下载之后用< script >标签包裹引入即可 ...
- JVM中GC浅解:垃圾回收的了解
1.为什么要有GC 没有GC的世界,我们需要手动进行内存管理,但是内存管理是纯技术活,又容易出错.但是我们写码的目的是为了解决业务问题,所以可以把这种纯技术活自动化,当然自动化也是有代价的. 2.垃圾 ...
- [js高手之路]Vue2.0基于vue-cli+webpack Vuex用法详解
在这之前,我已经分享过组件与组件的通信机制以及父子组件之间的通信机制,而我们的vuex就是为了解决组件通信问题的 vuex是什么东东呢? 组件通信的本质其实就是在组件之间传递数据或组件的状态(这里将数 ...
- Rest_framework Serializer 序列化 (含源码浅解序列化过程)
目录 Rest_framework Serializer 序列化 序列化与反序列化中不得不说的感情纠葛 三角恋之 save/update/create 四角恋之 序列化参数instance/data/ ...
随机推荐
- abstract (C# Reference)
https://msdn.microsoft.com/en-us/library/sf985hc5.aspx The abstract modifier indicates that the thin ...
- allonsy
时间限制 1s 空间限制 512MB 2.1 题目描述 "Allons-y!" 时间还算足够,好好看看题吧. 有一种说法,时间线是扭曲的,会相互交织.(一般在科幻片里比较流行?) ...
- leetcode快排相关
leetcode:75颜色分类(3way).215数组中的第K个最大元素(normal) 3way private static void quick3waySort(int[] arr, int l ...
- Java开源JSP标签库
01displytag 与Struts结合使用最出名的一个tag主要是显示表格数据很漂亮.完善. 02cewolf tag 用来在web上显示复杂图形报表的一个jsp tag. 03Loading T ...
- TextMeshPro 图片字Sprite
生成 需要一个资源 右键生成 调整位置 放在目录 使用 <sprite="NumDamage" index=1><sprite="NumDam ...
- [Swift通天遁地]五、高级扩展-(3)日期和时间类型的扩展方法
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- akka设计模式系列(Actor模型)
谈到Akka就必须介绍Actor并发模型,而谈到Actor就必须看一篇叫做<A Universal Modular Actor Formalism for Artificial Intellig ...
- vue---思维导图
持续更新啦啦啦啦
- 在vSphere Client上安装虚拟机工具VMware Tools
一.什么是虚拟机工具 VMware Tools是一套安装在虚拟机操作系统中的实用程序.VMware Tools可提高虚拟机的性能,并在 VMware产品中实现多个易于使用的功能. 尽管客户机操作系统在 ...
- Leetcode03---Longest Substring Without Repeating Characters
Description: Given a string, find the length of the longest substring without repeating characters. ...