1.关于状态管理

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

大家可以思考一下,组件之间的传值有哪些?有父子通讯,兄弟组件通讯......但是传参对于多层嵌套就显得非常繁琐,代码维护也会非常麻烦。因此vuex就是把组件共享状态抽取出来以一个全局单例模式管理,把共享的数据函数放进vuex中,任何组件都可以进行使用。

2.vuex的五个状态(后续补充)

vuex中一共有五个状态 State  Getter  Mutation   Action   Module

下面是一个调用vuex的实例

<template><div id="app"><input v-model="counts" /><input v-model="getternum" /><button @click="addnum1">mutation+1</button><button @click="actionnum6">action+6</button><img src="./assets/logo.png"><router-view/></div>
</template><script>
import { mapState , mapMutations , mapActions , mapGetters  } from 'vuex';
export default {data(){return{}},computed:{...mapState({counts:(state) => state.count}),...mapGetters({getternum:'doneTodos'})},methods:{...mapMutations({addnum:'addNum'}),...mapActions({actionnum:'actionNumAdd'}),addnum1(){this.addnum()},actionnum6(){this.actionnum()}}
}</script>

3.Vuex在项目中的配置和使用

1.首先安装vue项目和vuex

方法一:在创建Vue项目的时候,在选择配置项的这一步,选择 “Vuex”这个模块

方法二:如果创建Vue项目的时候没有安装Vuex模块,可以直接— npm i vuex -s 下载

2.新建store文件

注意:如果你在创建Vue项目的时候,配置了Vuex这个模块,你的项目中就有store这个文件。,可以跳过这一步。

如果没有:

在src路径下创建一个store文件,里面创建个index

在main.js的入口文件引入并在new vue中初始化
注意:引用的时候不加{ }会报错

————————————————
版权声明:本文为CSDN博主「小张快跑。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/io_123io_123/article/details/123723930

3.创建基本的vuex结构

store/index.js中创建基本的vuex结构

import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex)export const store = new Vuex.Store({state : {count:6},// 相当于Vuex中的计算属性getters:{doCount: (state, getters) => {return getters.doneTodos.length},//getters里的第一个参数是state,第二个是getters本身doneTodos:(state) =>{return state.count+2}            },mutations : {counts(state, v) {state.count = v;},addNum(state,v) {if(v){state.count += v}else{state.count ++}},reduceNum(state) {state.count --}},actions : {actionNumAdd(v) {// axios.get("/customer/user_info").then(res => {//     v.commit(addNum, res.data);// });//这里可以直接掉接口,并赋值,第一个参数是mutation里对应的名字,第二个参数是传的值v.commit('addNum', 6);},actionNumReduce(v) {// axios.get("/customer/user_info").then(res => {//     v.commit(addNum, res.data);// });//这里可以直接掉接口,并赋值,第一个参数是mutation里对应的名字,第二个参数是传的值v.commit('reduceNum', 6);}}})

4.调用vuex

下面的实例调用都是用的辅助函数,在刚创建好的App.vue实例基础上调用

<template><div id="app"><input v-model="counts" /><input v-model="getternum" /><button @click="addnum1">mutation+1</button><button @click="actionnum6">action+6</button><img src="./assets/logo.png"><router-view/></div>
</template><script>
import { mapState , mapMutations , mapActions , mapGetters  } from 'vuex';
export default {data(){return{}},computed:{...mapState({counts:(state) => state.count}),...mapGetters({getternum:'doneTodos'})},methods:{...mapMutations({addnum:'addNum'}),...mapActions({actionnum:'actionNumAdd'}),addnum1(){this.addnum()},actionnum6(){this.actionnum()}}
}</script>

Vue-什么是vuex相关推荐

  1. Vue状态管理vuex

    转: https://www.cnblogs.com/xiaohuochai/p/7554127.html 前面的话 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长.为 ...

  2. Vue学习(vuex)-学习笔记

    文章目录 Vue学习(vuex)-学习笔记 含义理解 具体代码 辅助函数 mapGetters mapActions Vue学习(vuex)-学习笔记 含义理解 State Vuex 使用单一状态树- ...

  3. vuex构建vue项目_如何使用Vue.js,Vuex,Vuetify和Firebase构建单页应用程序

    vuex构建vue项目 如何使用Vuetify和Vue路由器安装Vue并构建SPA (How to install Vue and build an SPA using Vuetify and Vue ...

  4. Vue+Electron下Vuex的Dispatch没有效果的解决方案

    Vue+Electron下Vuex的Dispatch没有效果的解决方案 参考文章: (1)Vue+Electron下Vuex的Dispatch没有效果的解决方案 (2)https://www.cnbl ...

  5. 视频教程-德国Vue.js2终极开发教程(含Vue路由和Vuex)-Vue

    德国Vue.js2终极开发教程(含Vue路由和Vuex) * Academind GmbH创始人,当前生活在德国慕尼黑 * 从15岁开始进入开发领域,前后端技术均很精通,毕业于慕尼黑大学硕士学位 * ...

  6. 德国Vue.js2终极开发教程(含Vue路由和Vuex)-Max-专题视频课程

    德国Vue.js2终极开发教程(含Vue路由和Vuex)-808人已学习 课程介绍         新手入门现代前端开发的不二选择 课程目标: * 学会从简单到复杂企业级应用的VueJS程序编写方法 ...

  7. vue教程——13 Vuex

    vue教程--13 Vuex 一 什么是Vuex? 二 vuex核心组成模块 三 vuex初体验 四 getter用法----------怎么获取state中的值呢?(B组件怎么获取并监听state的 ...

  8. vue全家桶——vuex

    本文主要介绍vuex[状态管理模式],在介绍vuex前,需要重点说下一些概念 vue最大的特点之一.数据驱动视图,可以吧数据理解成状态,视图-view可以理解成用户看到的页面,页面是动态变化的,而这个 ...

  9. vue firebase_如何使用Vue.js,Vuex,Vuetify和Firebase构建SPA:使用Firebase添加身份验证...

    vue firebase 第4部分:了解如何使用Firebase添加身份验证和购物车 (Part 4: learn how to use Firebase to add authentication ...

  10. Vuex-全局状态集中式管理神器,做vue项目不知道Vuex真的out了

    目录 一.概念 1.什么是vuex? 2.状态管理到底是什么? 3.等等,如果是这样的话,为什么官方还要专门出一个插件Vuex呢?难道我们不能自己封装个对象来管理吗? 4.管理什么状态呢? 二..单界 ...

最新文章

  1. CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
  2. 生成树的概念,最小生成树Prim算法 Kruskal算法
  3. [问题解决]NotImplementedError 错误原因:子类没有实现父类要求一定要实现的接口
  4. python适合做后端开发吗-pythonWeb后端开发好呢?还是从事网络爬虫比较好呢?
  5. Java EE6 CDI,命名组件和限定符
  6. 【Python】Matplotlib绘制机器学习中的判别分析示意图
  7. 学用 ASP.Net 之 字符串 (3): string 类的非扩展方法
  8. 百度文库的内容怎么复制粘贴下来呢,look
  9. 脑智前沿科普:脑深部电刺激治疗帕金森病的原理
  10. 织梦dedecms内核手赚网手机试玩平台源码PC+手机版
  11. html表格ppt,HTML表格.ppt
  12. 作为一个测试人,软件测试流程包括哪些内容,你都知道吗?
  13. 计算机基础课程-书籍和视频教程资源
  14. c语言求矩阵各行元素之和
  15. java excel 设置列为日期,POI - 如何将单元格值设置为日期并应用默认Excel日期格式?...
  16. acwing-Diango项目 (后半)
  17. 一起来看流星雨-------张翰
  18. linux下pfam使用方法,使用pfam-scan进行预测
  19. Redis基础、超详细入门教程
  20. ArcGIS 9.3 下载

热门文章

  1. 使用 gzip 压缩数据
  2. JS里数组合并的几种方法
  3. 线性代数(六)——二次型
  4. 计算机英语教案模板,小学英语教案模板三篇
  5. 超详细:Java 读取 Windows 共享文件夹中的文件,并下载到本地电脑中
  6. OpenGL环境的配置(GLUT安装教程)
  7. 简单快速!分享给你一款在线jpg格式转换器
  8. 实验项目名称:微波技术与天线CST仿真实验
  9. 如何设计一枚「拟态」按钮
  10. USB-C版3.7V锂电池充电与升压输出电路(5V/1A输出)-充电电源板(附电路图和PCB 抄板直接可用)