vuex使用示例
项目代码结构↓
src内容↓
store内容↓
理解思路: component中的组件发送修改请求,由action.js处理请求,mutation修改请求,修改请求后state改变,从getter.js中可获取更新后的state中的数据。
state.js中为初始数据
- const state={
- count:0
- };
- export default state;
action.js中的内容
- import * as types from './types';
- const actions={
- increment:({
- commit,state
- },payload)=>{
- // alert(payload);
- payload=payload||1;
- commit(types.INCREMENT,payload);
- },
- decrement:({
- commit,state
- })=>{
- commit(types.DECREMENT);
- },
- async:({
- commit,state
- })=>{
- setTimeout(()=>{//请求数据
- commit(types.INCREMENT);
- },1000);
- },
- odd:({
- commit,state
- })=>{
- if(state.count % 2 == 0){
- commit(types.INCREMENT);
- }
- }
- };
- export default actions;
mutation.js的内容
- import {
- INCREMENT,
- DECREMENT
- } from './types';
- const mutations={
- [INCREMENT]:(state,payload)=>{
- // alert(payload);
- payload=payload||1;
- state.count+=payload;
- },
- [DECREMENT]:(state)=>{
- state.count--;
- }
- };
- export default mutations;
type.js的内容
- export const INCREMENT='INCREMENT'; //加 描述
- export const DECREMENT='DECREMENT'; //减 描述
getter.js的内容
- const getters={
- count:(state)=>{
- return state.count;
- }
- };
- export default getters;
在App.vue(或其他组件)中获取、修改state中的状态↓
- <template>
- <div id="app">
- <h1>vuex</h1>
- <input type="button" value="+" @click="increment(2)">
- <input type="button" value="-" @click="decrement">
- <input type="button" value="异步+" @click="async">
- <input type="button" value="偶数+" @click="odd">
- <br/>
- 越过getters向state拿:{{$store.state.count}}
- <br/>
- {{count}}/{{count%2==0?'双数':'单数'}}
- <br/>
- <input type="button" value="修改私有数据" @click="check">
- <br/>
- {{n}}
- </div>
- </template>
- <script>
- import {mapActions,mapGetters} from 'vuex';
- export default {
- name: 'app',
- data () {
- return {
- n:0
- }
- },
- methods:{ // 私有方法和 请求并存
- check(){
- this.n='bmw';
- },
- ...mapActions(
- ['increment','decrement','async','odd']
- )
- },
- computed:mapGetters(
- ['count']
- ),
- mounted(){
- //代码里面直接发请求 actions
- // this.$store.dispatch('increment',121);
- //代码里面直接发请求 mutations
- // this.$store.commit('INCREMENT',['apple','banana','orange','西游记']);
- }
- }
- </script>
- <style>
- </style>
vuex使用示例的更多相关文章
- 超简单入门Vuex小示例
写在前面 本文旨在通过一个简单的例子,练习vuex的几个常用方法,使初学者以最快的速度跑起来一个vue + vuex的示例. 学习vuex需要你知道vue的一些基础知识和用法.相信点开本文的同学都具备 ...
- vuex简单示例
一.vuex是什么,解决了什么问题? 官方解释是:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生 ...
- vue全家桶+Koa2开发笔记(1)--vuex
1. 安装webpack的问题: webpack坑系列--安装webpack-cli 2. vue-cli(vue脚手架)超详细教程 3. 在命令行中使用 touch 执行新建文件: 4. 关 ...
- 通俗理解vuex原理---通过vue例子类比
本文主要通过简单的理解来解释下vuex的基本流程,而这也是vuex难点之一. 首先我们先了解下vuex的作用 vuex其实是集中的数据管理仓库,相当于数据库mongoDB,MySQL等,任何组件都可以 ...
- vuex的简单例子和vue model组件
好久没用过vuex了,vuex官方示例的计算器counter是用的webpack打包了单文件组件,不方便回顾,今天把代码改成了html引人的方式,方便回顾 <!DOCTYPE html> ...
- 举个例子去理解vuex(状态管理),通俗理解vuex原理,通过vue例子类比
通俗理解vuex原理---通过vue例子类比 本文主要通过简单的理解来解释下vuex的基本流程,而这也是vuex难点之一. 首先我们先了解下vuex的作用vuex其实是集中的数据管理仓库,相当于数 ...
- 快速理解 VUEX 原理
1. vuex 的作用: vuex其实是集中的数据管理仓库,相当于数据库mongoDB,MySQL等,任何组件都可以存取仓库中的数据. 2. vuex 流程和 vue 类比: 我们看一下一个简单的vu ...
- vuex2.0+两个小例子
首先vuex概念比较多,一定要搞懂里面的概念,可以参考官网Vuex2.0概念,我写此文的目的是希望能对前端爱好者提供个参考,加深对vuex2.0各核心概念的理解. 废话少说,直接上干货.这是官网上的一 ...
- vuex-Actions的用法
Action 类似于 mutation,不同在于: Action 提交的是 mutation,而不是直接变更状态. Action 是异步的,mutation是同步的. 沿用vuex学习---简介的案例 ...
随机推荐
- IntelliJ IDEA Cannot resolve symbol ''
study from : https://www.cnblogs.com/linmengfei/p/7909196.html File->Invalidate Caches 点击File | I ...
- 常用工具类(System,Runtime,Date,Calendar,Math)
一.System: 一个java.lang包中的静态工具类. 三大字段: static PrintStream err “标准”错误输出流. static InputStream in “标准”输入流 ...
- C++自定义NULLPTR
惊奇的发现C++中连NULL和nullptr都有区别 NULL和nullptr 根据文章,应当做好NULL和nullptr的兼容工作 翻阅了一下qt的宏定义 #ifdef __GNC__ #defin ...
- 线程(Thread)
package cn.gouzao.demo3; public class ThreadDemo extends Thread{ public void run(){ for(int i=0;i< ...
- 新建体(3):dbms_job下新建一个job定期自动执行存储过程
http://blog.csdn.net/thinkscape/article/details/7411012http://java-admin.iteye.com/blog/231159sql窗口执 ...
- 苹果笔记本适合什么人 中国Mac电脑用户的8个事实
报告由腾讯 ISUX 研究中心收集了全国 7946 名 Mac 电脑用户的问卷整理而成.并且,参考了苹果公司的历年财报,以及百度.StatCounter 等第三方市场统计数据. 你是 iPhone 用 ...
- Systemd 添加自定义服务(开机自启动)
Systemd 简介:https://fedoraproject.org/wiki/Systemd/zh-cn 一.service unit 常用命令,以 mysql 服务为例 # 开机启动 syst ...
- html基本进阶知识【转】
inline和block的区别: 网页一般是两种元素组合起来的,一种是内联元素,也就是行内显示,加上width和height没效果.一种是区块元素,可以加上对应的width和height,通常使用在网 ...
- LeetCode(194.Transpose File)(awk进阶)
194. Transpose File Given a text file file.txt, transpose its content. You may assume that each row ...
- python 有趣的库练习
这里会将看到别人玩过有趣的实践并记录下来,会是一个长期更新的过程... 以下大部分均非原创变化自网络,只是觉得有趣便记录下来了,如有侵权,请告知删除... 自动化脚本... 20个必不可少的Pytho ...