效果图:

vue的app.vue

<template>
<div>
<p>click {{count}} times,count is {{evenOrOdd}}</p>
<button @click="increment">+</button>
<button @click="decrement">-</button>
<button @click="incrementIfOdd">odd</button>
<button @click="incrementasync">async</button>
</div>
</template> <script>
export default {
data(){
return{
count:0
}
}, computed:{
evenOrOdd(){
return this.count%2===0 ? '偶数':"奇数"
}
},
methods:{
increment(){
let count=this.count
this.count= count+1
},
decrement(){
let count=this.count
this.count= count-1
},
//如果是奇数才增加
incrementIfOdd(){
let count=this.count
if(count%2===1){
this.count= count+1
}
},
//过一秒才增加
incrementasync(){
setTimeout(()=>{
let count=this.count
this.count= count+1
},1000)
}
}
}
</script> <style> </style>

vuex的app.vue

<template>
<div>
<p>click {{$store.state.count}} times,count is {{evenOrOdd}}</p>
<button @click="increment">+</button>
<button @click="decrement">-</button>
<button @click="incrementIfOdd">odd</button>
<button @click="incrementasync">async</button>
</div>
</template> <script>
export default {
computed:{
evenOrOdd(){
return this.$store.getters.evenOrOdd
}
},
methods:{
increment(){
//通知vuex去增加
this.$store.dispatch('increment') //触发store中对应的action调用
},
decrement(){
this.$store.dispatch('decrement')
},
//如果是奇数才增加
incrementIfOdd(){
this.$store.dispatch('incrementIfOdd')
},
//过一秒才增加
incrementasync(){
this.$store.dispatch('incrementasync')
}
}
}
</script> <style> </style>

vuex的store.js

//vuex的核心管理对象模块
import Vue from 'vue'
import Vuex from 'vuex' Vue.use(Vuex) //状态
const state = { //初始化状态
count:0
} //包含多个更新mutations函数的对象
const mutations = {
//增加的mutation
INCREMENT(state){
state.count++
},
//减少的mutation
DECREMENT(state){
state.count--
}
} //包含多个更新actions函数的对象
const actions = {
//增加action
increment({commit}){
commit("INCREMENT")
},
decrement({commit}){
commit("DECREMENT")
},
incrementIfOdd({commit,state}){
if(state.count%2===1){
commit("INCREMENT")
}
},
//异步的action
incrementasync({commit}){
setTimeout(()=>{
commit("INCREMENT")
},1000)
}
} //包含多个更新getters函数的对象
const getters = {
evenOrOdd(state){
return state.count%2===0 ? '偶数':"奇数"
}
}
export default new Vuex.Store({
state,//状态
mutations,//包含多个更新state函数的对象
actions,//对应多个对应事件回调函数的对象
getters // 包含多个getter计算属性函数的对象
})

vuex的main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import store from './store' /* eslint-disable no-new */
new Vue({
el: '#app',
components: { App },
template: '<App/>',
store //所有的组件对象都多了一个$store
})

vuex的小demo的更多相关文章

  1. 新手 gulp+ seajs 小demo

    首先,不说废话,它的介绍和作者就不在多说了,网上一百度一大堆: 我在这里只是来写写我这2天抽空对seajs的了解并爬过的坑,和实现的一个小demo(纯属为了实现,高手请绕道); 一.环境工具及安装 1 ...

  2. Nancy之基于Nancy.Hosting.Self的小Demo

    继昨天的Nancy之基于Nancy.Hosting.Aspnet的小Demo后, 今天来做个基于Nancy.Hosting.Self的小Demo. 关于Self Hosting Nancy,官方文档的 ...

  3. Nancy之基于Nancy.Owin的小Demo

    前面做了基于Nancy.Hosting.Aspnet和Nancy.Hosting.Self的小Demo 今天我们来做个基于Nancy.Owin的小Demo 开始之前我们来说说什么是Owin和Katan ...

  4. Nancy之基于Self Hosting的补充小Demo

    前面把Hosting Nancy with ASP.NET.Self Hosting Nancy和Hosting Nancy with OWIN 以demo的形式简单描述了一下. 这篇是为Self H ...

  5. [Unity3D]做个小Demo学习Input.touches

    [Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...

  6. Android -- 自定义View小Demo,动态画圆(一)

    1,转载:(http://blog.csdn.NET/lmj623565791/article/details/24500107),现在如下图的效果: 由上面的效果图可以看到其实是一个在一个圆上换不同 ...

  7. Win10 FaceAPI小demo开发问题汇总

    Win10 FaceAPI小demo开发问题汇总 最近使用微软牛津计划做一个小demo,使用FaceAPI做一个小应用,实现刷脸的功能.开发的过程中用到几个问题,具体如下: Stream 与IRand ...

  8. 模仿京东顶部搜索条效果制作的一个小demo

    最近模仿京东顶部搜索条效果制作的一个小demo,特贴到这里,今后如果有用到可以参考一下,代码如下 #define kScreenWidth [UIScreen mainScreen].bounds.s ...

  9. Android学习小Demo一个显示行线的自定义EditText

    今天在处理一个EditText的时候,想着把EditText做成像一本作业本上的纸一样,每一行都可以由线条隔开,具体效果如下: 1)最开始的思路 一开始的想法是很简单的,找出每一行的高度,然后一行一行 ...

随机推荐

  1. Java如何使套接字向单个客户端显示消息?

    在Java编程中,如何使用套接字向单个客户端显示消息? 以下示例演示了如何使用Socket类的ssock.accept()方法向单个套接字客户端上显示消息. package com.yiibai; i ...

  2. SpringDataJPA - 复杂查询总结 (多表关联 以及 自定义分页 )

    实体类 @Entity @Table(name = "t_hotel") @Data public class THotel { @Id private int id; priva ...

  3. Nginx 基本命令

    基础命令 1.启动 直接点击Nginx目录下的nginx.exe 或者 cmd运行start nginx 2.关闭 nginx -s stop 或者 nginx -s quit stop表示立即停止n ...

  4. Web上传文件的原理及实现

    现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload.还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2 ...

  5. ImageMagick、imagick和ghostscript三者的关联

    http://467754239.blog.51cto.com/4878013/1602518/ 一.功能概述 ImageMagick是第三方的图片处理软件,功能要比GD强大.建议两者都安装,并不冲突 ...

  6. MySql表结构修改详解

    修改表的语法=========================增加列[add 列名]=========================①alter table 表名 add 列名 列类型 列参数[加的 ...

  7. SQL Server2008 删除登录记录

    SQL Server Management Studio登陆窗口  清空这些多余的登陆名   主要是删除SqlStudio.bin文件   WinXP:    C:\Documents and Set ...

  8. [原]Jenkins(十四)---jenkins示例:admin管理所有项目,新建用户只能看部分项目

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...

  9. Linux中 SonarQube代码质量管理平台安装

    SonarQube是管理代码质量一个开源平台,可以快速的定位代码中潜在的或者明显的错误. SonarQube安装 1.环境准备 (1)sonarQube 下载地址https://www.sonarqu ...

  10. Linux下的tr编辑器命令详解

    通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复 ...