vue_vuex笔记

Vuex 状态管理

0. 前言

  • 核心:Vuex 是 Vue 全局状态管理库
  • 作用:多组件共享数据、统一管理数据
  • 适用:用户信息、购物车、全局配置、订单状态等

一、安装命令

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

二、Vuex 核心概念(必背)

  1. state
    定义共享数据
  2. mutations
    定义同步修改数据的方法
  3. actions
    定义异步操作,调用 mutations
  4. getters
    对 state 数据加工(类似计算属性)

三、Vuex 固定结构(store/index.js)

js 复制代码
import Vuex from 'vuex'

export default Vuex.createStore({
  // 1. 共享数据
  state: {
    count: 0,
    username: ""
  },

  // 2. 同步修改 state
  mutations: {
    SET_COUNT(state, num) {
      state.count = num
    },
    SET_USER(state, name) {
      state.username = name
    }
  },

  // 3. 异步操作
  actions: {
    asyncSetCount({ commit }, num) {
      setTimeout(() => {
        commit('SET_COUNT', num)
      }, 1000)
    }
  },

  // 4. 加工数据
  getters: {
    doubleCount(state) {
      return state.count * 2
    }
  }
})

四、使用共享数据(组件中)

1. 获取数据

js 复制代码
this.$store.state.count
this.$store.state.username

2. 调用 mutations(同步修改)

js 复制代码
this.$store.commit('SET_COUNT', 100)

3. 调用 actions(异步修改)

js 复制代码
this.$store.dispatch('asyncSetCount', 200)

4. 使用 getters

js 复制代码
this.$store.getters.doubleCount

五、Vuex 流程(必背)

  1. 组件 dispatch 调用 actions
  2. actions commit 调用 mutations
  3. mutations 修改 state
  4. state 改变 → 所有使用数据的组件自动更新

六、Vuex 核心规则(面试必问)

  • state 只读,不能直接改
  • 修改必须走 mutations
  • mutations 必须同步
  • 异步操作必须放在 actions
  • 数据共享、响应式、所有组件可访问

七、一句话总结

  • state:存数据
  • mutations:改数据(同步)
  • actions:异步处理,调用 mutations
  • commit → 调用 mutations
  • dispatch → 调用 actions
相关推荐
ai_coder_ai2 分钟前
如何在自动化脚本中实现定时操作?
java·前端·javascript
如烟花的信页2 分钟前
易盾滑块逆向分析
javascript·爬虫·python·js逆向
努力早日退休3 分钟前
一个 9999px 引发的跨平台血案:小程序离屏隐藏元素的滚动兼容性问题
前端·javascript
8Qi83 分钟前
LeetCode 746:使用最小花费爬楼梯 —— 题解笔记
java·笔记·算法·leetcode·动态规划
二哈赛车手13 分钟前
新人笔记---继图片搜索功能后续以及AI网络搜索功能一些经验与踩坑点,吐槽一下自己在做这方面的崩溃瞬间
java·网络·人工智能·spring boot·笔记·spring
Darling噜啦啦18 分钟前
正则表达式实战指南:从手机号验证到模板引擎,5 个案例彻底搞懂 RegExp
javascript·面试
sugar__salt18 分钟前
JS正则表达式与字符串高阶实战精讲
开发语言·javascript·正则表达式
HjhIron22 分钟前
从手机号校验到模板引擎:正则表达式的实战之旅
javascript
Hello馒头儿22 分钟前
vue3+uniapp经典hook方式实现一个更多加载的列表组件
前端·javascript·vue.js
用户9385156350723 分钟前
前端必会:从 Fetch 到 DeepSeek,一篇搞懂 HTTP 请求的方方面面
javascript·架构