什么是vuex?

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

为什么要用vuex?

  • 对于父子组件之前的通信,父组件通过porps传递到子组件,子组件通过$emit发送事件到父组件;父组件还可以通过ref的方式拿子组件的值并共享;

  • 对于组件与组件之间的通信,可以new一个新的Vue实例,专门用来做event bus进行通信。怎么用?

  • 当多个组件之间共享一个状态时,event bus可能就变成乱了

怎么用?

  组件A的js中:  this.$store.dispatch('get_beforeVote_params',this.dynamicValidateForm.email);            //设值

  组件B的template中:<p>{{'beforeVoteParams:'+$store.state.vote.beforeVoteParams}}</p>                   //引用值

  组件B的js中:   如果没有引用这句话:import store from '@/store/index'         就:this.$store.state.vote.beforeVoteParams 直接用;

          如果引用了这句话:import store from '@/store/index'         就:store.state.vote.beforeVoteParams   可以取值;

1)入口文件中要引入同级目录下的:import store from './store'      //import store from './store'/index.js   index.js是省略的写法

vue用的版本是:"vue": "^2.3.3",

vuex用的版本是:"vuex": "^2.3.1",

并且要加入进来:

  new Vue({
    router,
    store,
    axios,
    template: '<App/>',
    components: { App }
  }).$mount('#app');

2)目录如下:

  

3)在index.js中:

import Vue from 'vue';
import Vuex from 'vuex';
import getters from './getters';
import user from './modules/user';
import permission from './modules/permission';
import vote from './modules/vote';Vue.use(Vuex);const store = new Vuex.Store({modules: {user,permission,vote},getters
});export default store

4)在getter.js中:

我们可以在store中定义getters,第一个参数是state;

传参:定义的Getters会暴露为store.getters对象,也可以接受其他的getters作为第二个参数;

const getters = {paramsself:state =>state.vote.beforeVoteParams,
};
export default getters

页面上可以这么用:<p>{{'paramsself:'+$store.getters.paramsself}}</p>

5)在vote.js中:

const vote = {state: {beforeVoteParams : '',index:"queryHoldVolume11115"},mutations: {GET_BEFOREVOTE_PARAMS:(state,item)=>{state.beforeVoteParams = item;}},actions: {get_beforeVote_params:({commit},item)=>{commit('GET_BEFOREVOTE_PARAMS',item)},}
};export default vote;

差不多就是这么用的。

state,      <!--状态-->getters,    <!-- 状态的计算属性 -->mutations,  <!-- 用于改变状态 -->actions,   <!-- 可包含异步操作的mutation -->

3.mapGetters

mapGetters辅助函数仅仅是将store中的getters映射到局部计算属性中,用法和mapState类似

转载于:https://www.cnblogs.com/wpcnblog/p/10973295.html

vuex是什么?怎么用,例子相关推荐

  1. vuex 基本入门和使用(二)

    vuex 基本入门和使用(二) vuex 版本为^2.3.1,按照我自己的理解来整理vuex. 关于 state 每个vuex 应用只有一个 store 实例,所以使用起来不会太复杂,对于定位错误状态 ...

  2. Vue组件通信(父子,祖孙)

    父组件 ==> 子组件 大部分情况下,父向子发送消息都是组件的事情,在vue中也不例外. 举个例子,将Dog组件的信息 <!-- Dog.vue --> <template&g ...

  3. 详解 Vue Vuex 实践

    2019独角兽企业重金招聘Python工程师标准>>> 随着应用复杂度的增加,我们需要考虑如何进行应用的状态管理,将业务逻辑与界面交互相剥离,详细讨论参考笔者的2016-我的前端之路 ...

  4. vuex入门,详细的讲解

    学习vuex,首先明白vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 如 ...

  5. vuex刷新页面数据丢失怎么解决_vuex状态机浅谈

    我最近项目上在使用vuex的过程中,遇到下面两个问题 F5刷新后,vuex中状态丢失 v-model需要与vuex结合 针对这两个问题,我的解决办法是 问题1:F5刷新后,vuex中状态丢失 解决办法 ...

  6. 探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用

    前言 首先说明这并不是一个教程贴,而记事本应用是网上早有的案例,对于学习 vuex 非常有帮助.我的目的是探索 vuex 2.0 ,然后使用 vue 2.0 + vuex 2.0 重写这个应用,其中最 ...

  7. 探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用23

    前言 首先说明这并不是一个教程贴,而记事本应用是网上早有的案例,对于学习 vuex 非常有帮助.我的目的是探索 vuex 2.0 ,然后使用 vuejs 2.0 + vuex 2.0 重写这个应用,其 ...

  8. Vuex 2.0 源码分析

    作者:滴滴公共前端团队 - 黄轶 大家好,我叫黄轶,来自滴滴公共前端团队,我们团队最近写了一本书 --<Vue.js 权威指南>,内容丰富,由浅入深.不过有一些同学反馈说缺少 Vuex 的 ...

  9. 一个简单案例教你如何用Typescript写Vuex

    案例源代码: github.com/danielhuoo/- 前言 相信很多人都像我一样,学习使用了vuex后,想把项目改写成Typescript.但是官方教程要么晦涩难懂,要么缺少鲜活的例子.我花了 ...

最新文章

  1. python浪漫代码-Python打造浪漫的心形,助你情人节表白成功!
  2. spark sql 1.2.0 测试
  3. 使用ASP.NET上传图片汇总
  4. C# Task 循环任务_C# Task.Run调用外部参数
  5. [NOIP2021] 数列(计数dp)
  6. 从逻辑回归到最大熵模型
  7. Magento数据库结构:EAV
  8. mtk android工具包,MTK Android software Tools工具的说明
  9. MyBatis中selectByExample和selectByExampleWithBLOBs区别
  10. Crash -- 生成Minidump调试信息
  11. 【软件测试】单元测试的主要任务不包括全局数据结构
  12. [转]编程的首要原则(s)是什么?
  13. 使用Spring实现AOP(XML+注解)
  14. Java基础 从键盘录入10整数,如果录入了一个0,则提前停止录入,统计已经录入了多少个奇数
  15. ESP32-SPI接口bl0942驱动
  16. [arduino]红外接收测试工装
  17. 15高级链接构建策略和技巧,以提高您的SEO
  18. 千人千面 ,得到标签 ,优化标签,定位精准客户
  19. [故事]女博士在京辛酸买房记:同学想读博吗?先买个房吧
  20. 【面试题】面试官:vue的这些原理你了解吗?

热门文章

  1. 中国军团称霸KDD:华人博士斩获最佳论文,清华北大中科大华为等榜上有名
  2. 006-spring cloud gateway-GatewayAutoConfiguration核心配置-GatewayProperties初始化加载、Route初始化加载...
  3. 阿里巴巴Android开发手册(正式版)
  4. SYSAUX表空间使用率高问题处理
  5. CoreOS的Tectonic新发行版支持Kubernetes自我管理
  6. 云安全云计算 迷团大揭幕
  7. 【新手教程】如何向App Store提交应用
  8. 网管师、网管员和网络工程师的区别(2)
  9. 写好python的代码怎么放在spark上跑_Spark精华问答 | spark的组件构成有哪些?
  10. Docker 容器技术 — Image