vue实例讲解之vuex的使用
vuex是一个状态管理插件,本文通过一个简单的实例来讲解一下,vuex的使用。
先看一张官方的图:
这个图新手一看估计是蒙的,简单解释一下,这个图表示的就是vue通过Action Mutations 和state三者之间的交互来达到改变componets状态的作用。组件disapth事件之后,触发vuex的Actions Actions通过commit传递一个action给Mutation执行,Mutation里面对state进行操作。state里面定义的状态返回出去,来控制compoents。
废话不多说了,直接上手一个项目就明白了。
先来整理一下vuex的使用的基本框架搭建:
第一步:引用vuex:
第二步:
第三步:导出vuex设置
第四步:在打包的入口文件里面引用vuex配置文件并且在vue实例上挂载
第五步:设置actions,mutaions,states,getters
基本流程知道了,下面就来看如何实现一个真实需求:
先看一下项目的效果,我们需要通过vuex来操作这个数字。通过点击按钮来增加数字,减少这个数字。
先用vue-cli搭建一个基础模板。
安装vuex npm install vuex --save-dev
然后在App.vue里面添加好按钮布好局,并且写好各自按钮点击的事件。
然后在script标签里面将vuex引用过来。
这里vuex有两个对象:
mapGeetters:获取数据的
mapActions : 管理所有方法
具体使用方法,如下面
computed:mapGetters([
'count',
'getOdd'
]),
methods:mapActions([
'increament',
'decrement',
'clickOdd'
])
接下来,新建一个store文件夹:里面新建index.js ,actions.js,mutations.js,getters.js,type.js四个文件。
项目结构如下:
index.js代码如下:
types:
Actions:
gettes:
mutations:
执行npm run dev 就实现我们的需求了,以后所有的状态管理就依葫芦画瓢了。
项目源代码:查看git地址。
vue实例讲解之vuex的使用的更多相关文章
- vue实例讲解之axios的使用
本篇来讲解一下axios插件的使用,axios是用来做数据交互的插件. 这篇将基于vue实例讲解之vue-router的使用这个项目的源码进行拓展. axios的使用步骤: 1.安装axios npm ...
- vue实例讲解之vue-router的使用
实例讲解系列之vue-router的使用 先总结一下vue-router使用的基本框架: 1.安装并且引入vue-router 安装:npm install vue-router --save-dev ...
- vue - 简单实例(vue-router + webpack + vuex)
分享 + 实践 基于公司部分产品技术栈转型使用vue,部分同事需要学习一下,快速上手,那么我很荣幸的成为了给大家分享vue技术栈的‘ ’导师‘,在这里我分享一下: 讲解大纲为:(我是有一份PPT的, ...
- 054——VUE中vue-router之实例讲解定义一下单页面路由
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 020——VUE中变异方法push的留言版实例讲解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 019——VUE中v-for与computer结合功能实例讲解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue-devtools 获取到 vuex store 和 Vue 实例的?
vue-devtools 获取到 vuex store 和 Vue 实例的? https://github.com/vuejs/vue-devtools 安装了 vue-devTools ...
- Vue.js 基础指令实例讲解(各种数据绑定、表单渲染大总结)——新手入门、高手进阶
Vue.js 是一套构建用户界面的渐进式框架.他自身不是一个全能框架--只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动 ...
- vue.js路由参数简单实例讲解------简单易懂
vue中,我们构建单页面应用时候,一定必不可少用到vue-router vue-router 就是我们的路由,这个由vue官方提供的插件 首先在我们项目中安装vue-router路由依赖 第一种,我们 ...
随机推荐
- php 数据访问练习:租房查询页面
<html> <head> <title></title> <meta charset="UTF-8"/> <li ...
- jsp页面附件上传暂存的处理
有没有遇到页面是新建一个新对象,对象里面需要上传附件,但是只有当对象保存时才将附件一同上传到数据库的情况? 这种情况的处理可以参考狐狸的思路: @jsp页面创建一个botton bn,该button的 ...
- Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)
上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...
- 编译安装LAMP并实现wordpress
author:JevonWei 版权声明:原创作品 软件环境 centos7.3 apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.27.tar.b ...
- PHP初入,div知识点整理(特效&字体等元素的使用整理)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- tkinter第一章1
tk1 ------------------------------------------------------------------------------------------ impor ...
- 【★】EIGRP终极解析!
EIGRP的思维导图 如图,我想采用一种全新的"框架式"教学法,或者叫"盖楼",旨在利用抽象的外部接口,分类分层地介绍各个机制之间的关系.其实任何学习到最后都 ...
- HTML5新增web存储方式
客户端存储数据的两个对象为: 两个对象在使用方式没有任何区别,唯一的不同点蚀储存数据 的有效时间 ①localStorage - 没有时间限制的数据存储 除非手动删除,否则数据将一直保存在本地文件: ...
- SNS团队Beta阶段第七次站立会议(2017.5.28)
1.立会照片 2.每个人的工作 成员 今天已完成的工作 罗于婕 对界面各部分的图标进行完善.美化 龚晓婷 对于历史记录功能进一步完善 林仕庄 对于历史记录功能进一步完善 刘海兰 协调界面的整体美化 念 ...
- 201521123073 《Java程序设计》第12周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...