Vuex状态管理应如何使用

这次给大家带来Vuex状态管理应如何使用,Vuex状态管理使用的注意事项有哪些,下面就是实战案例,一起来看一下。

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

以上是vuex的官方文档对vuex的介绍,官方文档对vuex的用法进行了详细的说明。这里就不再细讲vuex的各个用法,写这篇博客的目的只是帮助部分同学更快地理解并上手vuex。

1. 安装

$ npm install vuex --save

登录后复制

2. 在main.js 主入口js里面引用store.js

import Vue from 'vue'import App from './App'import router from './router' import store from './vuex/store'  //引用store.jsVue.config.productionTip = false //阻止在启动时生成生产提示 //vue实例new Vue({ el: '#app', router, store,              //把store挂在到vue的实例下面 template: '', components: { App }})

登录后复制

3. 在store.js里引用Vuex

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex) //注册Vuex// 定义常量  如果访问他的话,就叫访问状态对象const state = {  count: 1}// mutations用来改变store状态, 如果访问他的话,就叫访问触发状态const mutations = {  //这里面的方法是用 this.$store.commit('jia') 来触发  jia(state){    state.count ++  },  jian(state){    state.count --  },}//暴露到外面,让其他地方的引用export default new Vuex.Store({  state,  mutations})

登录后复制

4. 在vue组件中使用

使用$store.commit(‘jia’)区触发mutations下面的加减方法

 

Hello Vuex

{{$store.state.count}}

h5{ font-size: 20px; color: red; }

登录后复制

5. 查看演示

浅谈Vuex的状态管理(全家桶)

6. state访问状态对象

使用computed计算

 

Hello Vuex

{{count}}

import {mapState} from 'vuex'export default{ name:'hello', //写上name的作用是,如果你页面报错了,他会提示你是那个页面报的错,很实用 // 方法一 // computed: { // count(){ // return this.$store.state.count + 6 // } // } // 方法二 需要引入外部 mapState computed:mapState({ count:state => state.count + 10 }) // ECMA5用法 // computed:mapState({ // count:function(state){ // return state.count // } // }) //方法三 // computed: mapState([ // 'count' // ]) }

登录后复制

7. mutations触发状态 (同步状态)

 

Hello Vuex

{{count}}

import {mapState,mapMutations} from 'vuex' export default{ name:'hello', //写上name的作用是,如果你页面报错了,他会提示你是那个页面报的错,很实用 //方法三 computed: mapState([ 'count' ]), methods:{ ...mapMutations([ 'jia', 'jian' ]) } }

登录后复制

8. getters计算属性

getter不能使用箭头函数,会改变this的指向

在store.js添加getters

// 计算const getters = {  count(state){    return state.count + 66  }}export default new Vuex.Store({  state,  mutations,  getters})//count的参数就是上面定义的state对象//getters中定义的方法名称和组件中使用的时候一定是一致的,定义的是count方法,使用的时候也用count,保持一致。组件中使用 import {mapState,mapMutations,mapGetters} from 'vuex' export default{  name:'hello',  computed: {   ...mapState([    'count'   ]),   ...mapGetters([    'count'   ])  },  methods:{   ...mapMutations([     'jia',     'jian'   ])  } }

登录后复制

9. actions (异步状态)

在store.js添加actions

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)// 定义常量const state = {  count: 1}// mutations用来改变store状态 同步状态const mutations = {  jia(state){    state.count ++  },  jian(state){    state.count --  },}// 计算属性const getters = {  count(state){    return state.count + 66  }}// 异步状态const actions = {  jiaplus(context){    context.commit('jia') //调用mutations下面的方法    setTimeout(()=>{      context.commit('jian')    },2000)    alert('我先被执行了,然后两秒后调用jian的方法')  },  jianplus(context){    context.commit('jian')  }}export default new Vuex.Store({  state,  mutations,  getters,  actions})

登录后复制

在组件中使用

 

Hello Vuex

{{count}}

import {mapState,mapMutations,mapGetters,mapActions} from 'vuex' export default{ name:'hello', computed: { ...mapState([ 'count' ]), ...mapGetters([ 'count' ]) }, methods:{ // 这里是数组的方式触发方法 ...mapMutations([ 'jia', 'jian' ]), // 换一中方式触发方法 用对象的方式 ...mapActions({ jiaplus: 'jiaplus', jianplus: 'jianplus' }) } } h5{ font-size: 20px; color: red; }

登录后复制

10. modules 模块

适用于非常大的项目,且状态很多的情况下使用,便于管理

修改store.js

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)const state = {  count: 1}const mutations = {  jia(state){    state.count ++  },  jian(state){    state.count --  },}const getters = {  count(state){    return state.count + 66  }}const actions = {  jiaplus(context){    context.commit('jia') //调用mutations下面的方法    setTimeout(()=>{      context.commit('jian')    },2000)    alert('我先被执行了,然后两秒后调用jian的方法')  },  jianplus(context){    context.commit('jian')  }}//module使用模块组的方式 moduleAconst moduleA = {  state,  mutations,  getters,  actions}// 模块B moduleBconst moduleB = {  state: {    count:108  }}export default new Vuex.Store({  modules: {    a: moduleA,    b: moduleB,  }})

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

以上就是Vuex状态管理应如何使用的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2771989.html

(0)
上一篇 2025年3月8日 13:07:37
下一篇 2025年3月8日 13:07:54

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS按钮禁用和启用使用详解

    这次给大家带来JS按钮禁用和启用使用详解,使用JS按钮禁用和启用的注意事项有哪些,下面就是实战案例,一起来看一下。 废话不多说了,直接给大家贴代码了,具体代码如下所述: 按钮启用和禁用function btn1(){ document.ge…

    编程技术 2025年3月8日
    200
  • multer上传如何使用

    这次给大家带来multer上传如何使用,multer上传使用的注意事项有哪些,下面就是实战案例,一起来看一下。 收获还是蛮多的,主要在于wenpack使用的一些细节问题,有点茅塞顿悟的体验吧,另外在node上也不再一脸懵逼了。不过说实话,以…

    编程技术 2025年3月8日
    200
  • 在vue2中使用ref步奏详解

    这次给大家带来在vue2中使用ref步奏详解,在vue2中使用ref的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了vue2里面ref的具体使用方法,分享给大家,具体如下。 1、我们先定义两个组件 html部分 登录后复制 j…

    编程技术 2025年3月8日
    200
  • 开源JS插件框架MinimaJS使用介绍

    这次给大家带来开源JS插件框架MinimaJS使用介绍,开源JS插件框架MinimaJS使用的注意事项有哪些,下面就是实战案例,一起来看一下。 MinimaJS,完全开源,源码下载地址:https://github.com/lorry201…

    编程技术 2025年3月8日
    200
  • JS模块模式使用详解

    这次给大家带来JS模块模式使用详解,JS模块模式使用的注意事项有哪些,下面就是实战案例,一起来看一下。 在JS中没有Class的概念,那么如何体现Object的Public和Private属性呢,答案就是模块模式(Module Patter…

    编程技术 2025年3月8日
    200
  • angular cli的使用详解

    这次给大家带来angular cli的使用详解,angular cli使用的注意事项有哪些,下面就是实战案例,一起来看一下。 背景介绍 关于Angular版本,Angular官方已经统一命名Angular 1.x同一为Angular JS;…

    编程技术 2025年3月8日
    200
  • Three.js使用详解

    这次给大家带来Three.js使用详解,Three.js使用的注意事项有哪些,下面就是实战案例,一起来看一下。 开场白 webGL可以让我们在canvas上实现3D效果。而three.js是一款webGL框架,由于其易用性被广泛应用。如果你…

    编程技术 2025年3月8日
    200
  • Particles.js库在vue里如何使用

    这次给大家带来Particles.js库在vue里如何使用,Particles.js库在vue里使用的注意事项有哪些,下面就是实战案例,一起来看一下。 知乎的首页后面的粒子动效总觉得很炫酷,搜了一下,发现是用particles.js编写的。…

    编程技术 2025年3月8日
    200
  • Vue-router的路由元信息使用详解

    这次给大家带来Vue-router的路由元信息使用详解,Vue-router路由元信息使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一、背景 之前写前端都是后端返回界面,跳转神马的完全不用自己操心,但是这次用 vue 写的前端,第…

    编程技术 2025年3月8日
    200
  • Vue-Router的滚动行为使用详解

    这次给大家带来Vue-Router的滚动行为使用详解,Vue-Router滚动行为使用的注意事项有哪些,下面就是实战案例,一起来看一下。 滚动行为 使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论