Vuex使用一文搞懂

什么是Vuex

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

Vuex 是什么? | Vuex (vuejs.org) 图片来源,vuex官方文档

vuex安装

复制代码
npm install vuex@next --save

安装完成后新建目录store 目录下新建index.js文件
核心概念:

vuex 相当于全局的参数配置,其中的参数可以在每个页面调用,相当于数据库。

state 参数都放在state中,相当于 data(){}

getters 获取state中参数的值

mutations 设置(修改)state中参数的值(同步)

actions异步修改state中参数的值

modules 数据过多过大,防止store过于臃肿用来分割模块,每个模块有独立的state,getters,mutations:,actions。

要点:

只有mutations 可以修改/设置 state 中参数值,异步的 actions 也是通过上下文context.commit() 来通过 mutations 去修改state中的参数

javascript 复制代码
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {},
  getters: {},
  mutations: {},
  actions: {},
  modules: {}
})

在全局配置文件main.js中引入vuex

javascript 复制代码
import store from './store'


new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

同步

更改值通过 commit

页面拿值通过

this.$store.getters.getToken

this.$store.state.token

javascript 复制代码
    state: {
        token: ''
    },
    getters: {
        getToken(state) {
            return state.token;
        }
    },
    mutations: {
        upToken(state, val) {
            state.token = val;
        }
    },
javascript 复制代码
 // 同步更改值
 this.$store.commit('upToken',r)
 // 拿到state 参数
 alert(this.$store.getters.getToken)
html 复制代码
<template>
  <div>{{ token }}</div>

</template>

<script>
export default {
  name: "MainView",
// 通过计算属性拿到 参数
  computed: {

    token() {
      return this.$store.state.token
    }

  }
}

异步

更改通过 dispatch

异步只能通过 getters来拿值

this.$store.getters.getToken

javascript 复制代码
    state: {
        token: ''
    },
    getters: {
        getToken(state) {
            return state.token;
        }
    },
    mutations: {
        upToken(state, val) {
            state.token = val;
        }
    },
    actions: {
        asycUpToken(context, val) {
            context.commit('upToken', val);
        }
    },
javascript 复制代码
// 更改 state 参数
this.$store.dispatch('asycUpToken',r)

浏览器刷新vuex参数消失解决办法

vuex现在存储数据只是在页面中,全局变量,刷新页面后参数会恢复到初始状态

思路存sessionStronger,通过vue生命周期监听,第一次存入,监听到刷新将存入数据在给state

赶工中。。。。

相关推荐
一 乐1 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
C_心欲无痕1 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
清沫1 小时前
Claude Skills:Agent 能力扩展的新范式
前端·ai编程
yinuo2 小时前
前端跨页面通信终极指南:方案拆解、对比分析
前端
北辰alk2 小时前
Vue 模板引擎深度解析:基于 HTML 的声明式渲染
vue.js
北辰alk2 小时前
Vue 自定义指令完全指南:定义与应用场景详解
vue.js
yinuo3 小时前
前端跨页面通讯终极指南⑨:IndexedDB 用法全解析
前端
北辰alk3 小时前
Vue 动态路由完全指南:定义与参数获取详解
vue.js
北辰alk3 小时前
Vue Router 完全指南:作用与组件详解
vue.js
北辰alk3 小时前
Vue 中使用 this 的完整指南与注意事项
vue.js