vuex是vue.js的一个状态管理工具,它适用于解决平行组件之间的数据共享问题。一般情况下,我们更多的是父子组件之间通过props或$emit来实现传值,如何不满足以上情况那只有使用vuex进行解决。废话不多说,直接上代码。

1.先安装vuex

npm install vuex --save

2.创建一个store的文件夹,新建store.js文件。我们需要在这个文件中引入Vue和Vuex,并且需要安装Vuex

import Vue from 'vue';
import Vuex from 'vuex'; Vue.use(Vuex); const state={
count:1
} const mutations={
add(state,n){
state.count+=n;
},
reduce(state){
if(state.count<=1){
state.count=1;
}else{
state.count-=1;
} }
} export default new Vuex.Store({
state,
mutations })

State中放我们需要共享的数据,mutations是用来处理数据的方法。

3.创建视图组件来调用store中的方法

<template>
<div>
<h2>{{msg}}</h2>
<hr/>
<h3>{{$store.state.count}}</h3>
<div>
<button @click="$store.commit('add',10)">+</button>
<button @click="$store.commit('reduce')">-</button>
</div>
</div>
</template>
<script>
import store from "@/store/store"
export default{
data(){
return{
msg:'Hello Vuex' }
},
store,
computed:{
count(){
return this.$store.state.count
}
}
}
</script>
<style scoped> </style>

 这样一个简单的vuex例子就完成了。

我们还可以有别的写法来完成上述的功能

import Vue from 'vue';
import Vuex from 'vuex'; Vue.use(Vuex); const state={
count:1
} const mutations={
add(state,n){
state.count+=n;
},
reduce(state){
if(state.count<=1){
state.count=1;
}else{
state.count-=1;
} }
}
const actions={ "INC":(store)=>{
store.commit('add',10)
},
"RED":(store)=>{
store.commit('reduce')
}
}
export default new Vuex.Store({
state,
mutations
actions
})

  在store.js中定义一个actions用来负责把mutations中的逻辑发送给视图

<template>
<div>
<h2>{{msg}}</h2>
<hr/>
<h3>{{$store.state.count}}</h3>
<div>
<button @click="add">+</button>
<button @click="reduce">-</button>
</div>
</div>
</template>
<script>
import store from "@/store/store"
export default{
data(){
return{
msg:'Hello Vuex' }
},
store,
computed:{
count(){
return this.$store.state.count
}
},
methods:{
add:function(){
this.$store.dispatch("INC")
},
reduce:function(){
this.$store.dispatch("RED")
}
}
}
</script>
<style scoped> </style>

  

 不足之处,希望多多指正~~

对vuex的一点理解的更多相关文章

  1. opencv笔记5:频域和空域的一点理解

    time:2015年10月06日 星期二 12时14分51秒 # opencv笔记5:频域和空域的一点理解 空间域和频率域 傅立叶变换是f(t)乘以正弦项的展开,正弦项的频率由u(其实是miu)的值决 ...

  2. 对socket的一点理解笔记

    需要学web service,但是在视频中讲解到了socket套接字编程.以前貌似课上老师有提过,只是没用到也感觉乏味.现在遇到,自己看了些博客和资料.记录一点理解,不知正确与否. 首先说这个名字,叫 ...

  3. iOS 的一点理解(一) 代理delegate

    做了一年的iOS,想记录自己对知识点的一点理解. 第一篇,想记录一下iOS中delegate(委托,也有人称作代理)的理解吧. 故名思议,delegate就是代理的含义, 一件事情自己不方便做,然后交 ...

  4. 关于web开发的一点理解

    对于web开发上的一点理解 1 宏观上的一点理解 网页从请求第地址 到获得页面的过程:从客户端(浏览器)通过地址 从soket把请求报文封装发往服务端   服务端通过解析报文并处理报文最后把处理的结果 ...

  5. angular.js的一点理解

    对angular.js的一点理解 2015-01-14 13:18 by MrGeorgeZhao, 317 阅读, 4 评论, 收藏, 编辑 最近一直在学习angular.js.不得不说和jquer ...

  6. RxSwift 入坑好多天 - 终于有了一点理解

    一.前言 江湖上都在说现在就要赶紧学 swift 了,即将是 swift 的天下了.在 api 变化不大的情况下,swift 作为一门新的语言,集众家之所长,普通编码确实比 oc 要好用的多了 老早就 ...

  7. rt-thread中动态内存分配之小内存管理模块方法的一点理解

    @2019-01-18 [小记] rt-thread中动态内存分配之小内存管理模块方法的一点理解 > 内存初始化后的布局示意 lfree指向内存空闲区首地址 /** * @ingroup Sys ...

  8. rt-thread中软件定时器组件超时界限的一点理解

    @2019-01-15 [小记] 对 rt-thread 中的软件定时器组件中超时界限的一点理解 rt_thread_timer_entry(void *parameter)函数中if ((next_ ...

  9. mycat的schema.xml的个人的一点理解

    官方文档里讲的详细的部分的我就不再赘述了,我只是谈谈我自己的理解 刚开始接触mycat,最重要的几个配置文件有server.xml,schema.xml,还有个rule.xml配置文件 具体都是干啥用 ...

随机推荐

  1. Python爬虫开发【第1篇】【代理】

    1.简单的自定义opener() import urllib2 # 构建一个HTTPHandler 处理器对象,支持处理HTTP请求 http_handler = urllib2.HTTPHandle ...

  2. IIS网站无法启动,提示 另一个程序正在使用此文件

    s还用netstat -ano命令,观察哪一个进程正在使用80端口,任务管理中勾选PID,看看是哪个程序,关掉即可

  3. redis Database Eviction Policies Redis on Flash

    Database Eviction Policies - Redis Enterprise Software | Redis Labs https://redislabs.com/redis-ente ...

  4. Ubuntu利用TCP协议来获取server时间

    Linux利用TCP协议来获取server时间 这里使用Unix网络编程里面的一个小程序,该client建立一个到server的TCP连接,然后读取由server以直观可读格式简单地送回的当前时间和日 ...

  5. Android7.0源码编译运行指南【转】

    见连接: http://blog.csdn.net/HardReceiver/article/details/52650303

  6. FileStream StreamWriter StreamReader BinaryReader

    FileStream vs/differences StreamWriter? http://stackoverflow.com/questions/4963667/filestream-vs-dif ...

  7. Java 泛型 一

    泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立足于代码介绍.总结了关于泛型的知识. 先看下面的代码: List list = new ArrayList(); list ...

  8. 洛谷P3698 [CQOI2017]小Q的棋盘

    传送门 考虑一个贪心,先在根节点周围转一圈,然后再往下走最长链肯定是最优的 然后设最长链的长度为$d$,如果$m\leq d$,那么答案为$m+1$ 否则的话还剩下$m-d+1$步,又得保证能走回来, ...

  9. Poj 3694 Network (连通图缩点+LCA+并查集)

    题目链接: Poj 3694 Network 题目描述: 给出一个无向连通图,加入一系列边指定的后,问还剩下多少个桥? 解题思路: 先求出图的双连通分支,然后缩点重新建图,加入一个指定的边后,求出这条 ...

  10. pyDes 实现 Python 版的 DES 对称加密/解密--转

    https://my.oschina.net/leejun2005/blog/586451 手头有个 Java 版的 DES 加密/解密程序,最近想着将其 Python 重构下,方便后续脚本解析,捣鼓 ...