对 Vuex 的运行原理图的简单理解(用图书管理解释

一、核心角色对应

Vuex 模块现实角色职责
Vue Components同学(用数据的人)触发操作(借书、还书),渲染页面
Actions班长(处理复杂 / 异步)接收同学请求,处理异步(如登记、联系老师)
Mutations图书管理员(改数据)直接修改图书角的书(状态)
State图书角(共享数据)存所有共享的书(状态)
Devtools班主任(记录日志)记录谁、何时改了书(调试用)
Backend API校外书店(远程数据)从校外拿书(异步接口请求)

 

二、流程拆解(借书的完整过程)

1. 同学(Vue Components)想借书 → Dispatch 通知班长(Actions)
  • 场景:同学说 “我要借《Vue 入门》!”(组件触发 this.$store.dispatch('borrowBook'))。
  • 对应流程

    // 组件里触发
    this.$store.dispatch('borrowBook', { book: 'Vue 入门' })
    
2. 班长(Actions)处理请求 → 可能联系校外书店(Backend API)
  • 场景:班长需要先确认书店有这本书(调用异步接口),再通知图书管理员。
  • 对应代码

    // Vuex 的 Actions 里
    actions: {
      async borrowBook({ commit }, payload) {
        // 1. 联系校外书店(Backend API)
        const book = await fetchBookFromBackend(payload.book)
        // 2. 通知图书管理员(Mutations)
        commit('ADD_BOOK_TO_STATE', book)
      }
    }
    
3. 图书管理员(Mutations)修改图书角(State)
  • 场景:图书管理员收到班长通知,把《Vue 入门》放到图书角(修改共享状态)。
  • 对应代码

    // Vuex 的 Mutations 里
    mutations: {
      ADD_BOOK_TO_STATE(state, book) {
        // 直接修改共享状态(State)
        state.books.push(book)
      }
    }
    
4. 图书角(State)更新 → 同学(Vue Components)看到变化
  • 场景:图书角的书变多了,同学再去看时,发现《Vue 入门》已上架(组件自动更新)。
  • 对应原理
    Vuex 的 State 是响应式的,状态变了,用到 State 的组件会自动重新渲染。
5. 班主任(Devtools)记录全过程
  • 场景:班主任全程记录:“同学 A 借了《Vue 入门》→ 班长联系书店→ 图书管理员更新图书角”。
  • 对应工具
    Vue Devtools 里能看到每一步操作(哪个 Action、Mutation 被调用,状态怎么变的),方便调试。

三、一句话总结(必背!)

Vuex 的运行流程是 “组件 → Actions(处理异步)→ Mutations(改状态)→ State(更新)→ 组件(重新渲染)”,每个环节各司其职:

  • Actions 管 “复杂 / 异步逻辑”,
  • Mutations 管 “直接改状态”,
  • State 存 “共享数据”,
  • Devtools 管 “记录日志”。

整个流程就像 “同学→班长→图书管理员→图书角→同学” 借书的过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值