Vue总结第六天:Vuex (全局变量管理~多个页面共享数据)

简介: Vue总结第六天:Vuex (全局变量管理~多个页面共享数据)

目录

一、Vuex (全局变量管理~~多个页面共享数据)

✿ 更详细的可以看官网:开始 | Vuex

1、什么是Vuex?

2、核心概念:

(1) state:保存共享的状态(全局变量)

(2) getters(类似计算属性)

(3) mutations:(类似于事件注册) Vuex的store状态的更新唯一方式:提交Mutation

   1)Mutation主要包括两部分:

   2)使用:

   3)提交载荷(Payload):就是mutations回调函数的参数(可以是基本变量,也可以是对象):

  4)提交风格:

  5)使用常量替代 Mutation 事件类型:

  6)在组件中提交 Mutation(简化方法的调用代码):使用 mapMutations 辅助函数将组件中的 methods 映射为 store.commit 调用

(4) actions(异步操作):actions提交的对象是 mutation,而不是直接变更状态state:

  1)Action 函数有一个与 store 实例具有相同方法和属性的 context 对象,

  2) Action作用:

  3) 使用:

  4)提交载荷(Payload)---actions和mutations的回调函数的参数:

  5)Action返回Promise对象,将异步操作后的结果返回给vue实例method中定义分发的函数。

  6)在组件中分发 Action(简化方法的调用代码): mapActions 辅助函数将组件的 methods 映射为 store.dispatch

(5) modules(模块化):

 

 

一、Vuex (全局变量管理~~多个页面共享数据)

           ✿ 更详细的可以看官网:https://vuex.vuejs.org/zh/guide/


43.png44.png


45.png


const store = new Vuex.Store({
  state: {
      count: 1
  },
  mutations: {
    increment (state) {
      // 变更状态
      state.count++
    }
  }
})
//提交mutations
this.$store.commit('increment', 10)

464.png


vue 实例中定义的method方法中:通过 this.$store.commit('increment'),

其中这个 'increment' 就是咱定义在store的mutitions中的回调函数名


47.png


//注册increment事件
mutations: {
  increment (state, n) {
    state.count += n
  }
}


//提交mutations
this.$store.commit('increment', 10)


48.png

//注册increment事件
mutations: {
  increment (state, payload) {
    state.count += payload.amount
  }
}


//提交mutations
this.$store.commit('increment', {
  amount: 10
})


49.png

50.png


//注册一个increment的action,并通过context提交个mutations
const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
//写法一:直接书写context对象    
    increment (context) {
      context.commit('increment')
    }
//写法二:直接书写context对象需要用到的属性或方法    
    increment ({commit}) {
      commit('increment')
    }
  }
})


51.png

this.$store.dispatch('increment');


52.png

53.png

54.png



目录
相关文章
|
6月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
540 2
|
5月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
440 137
|
8月前
|
JavaScript 安全
在 Vue 中,如何在回调函数中正确使用 this?
在 Vue 中,如何在回调函数中正确使用 this?
403 0
|
JavaScript 数据安全/隐私保护
work02_vue页面打印水印
work02_vue页面打印水印
455 0
work02_vue页面打印水印
|
9月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
1001 0
|
11月前
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
1238 4
|
9月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
10月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
1320 78
|
11月前
|
缓存 JavaScript 前端开发
Vue 基础语法介绍
Vue 基础语法介绍
|
8月前
|
人工智能 JSON JavaScript
VTJ.PRO 首发 MasterGo 设计智能识别引擎,秒级生成 Vue 代码
VTJ.PRO发布「AI MasterGo设计稿识别引擎」,成为全球首个支持解析MasterGo原生JSON文件并自动生成Vue组件的AI工具。通过双引擎架构,实现设计到代码全流程自动化,效率提升300%,助力企业降本增效,引领“设计即生产”新时代。
577 1