• VUEX全网最详细讲解之一



    目录

    一.Vuex简介

     二.vuex的存值取值

     测试结果

    三.vuex异步请求 

    测试结果

    ​编辑 ​编辑


    一.Vuex简介

    Vuex 是一个用于 Vue.js 应用程序的状态管理模式和库。它以集中式存储管理应用的所有组件的状态,并提供可预测的状态变化。Vuex 主要解决了多个组件之间共享状态和数据管理的问题。

    Vuex 的核心概念包括:

    1. State(状态): Vuex 使用单一状态树(Single State Tree)来存储应用程序的所有状态。State 是驱动应用的数据源,可以通过 this.$store.state 来访问。

    2. Mutation(变化): Mutation 是修改状态的唯一途径,它定义了对状态的修改操作。每个 Mutation 都有一个字符串类型的事件类型和一个回调函数,在回调函数中实际地改变状态。可以通过提交(commit)一个 Mutation 来修改状态,通过 this.$store.commit 进行提交。

    3. Action(动作): Action 类似于 Mutation,但是可以包含异步操作。Action 提交 Mutation 来间接地改变状态,可以用于处理异步操作、封装复杂逻辑、触发多个 Mutation 等。通过分发(dispatch)一个 Action 来触发它,通过 this.$store.dispatch 进行分发。

    4. Getter(获取器): Getter 可以理解为计算属性,用于从状态中派生出新的状态。Getter 提供一个访问函数,可以根据应用程序的状态进行动态计算,类似于对 Store 数据的过滤、格式化等操作。

    5. Module(模块): Module 允许将 Store 拆分成多个模块,每个模块都有自己的 state、mutation、action、getter。模块化可以使得状态管理更加灵活和可维护,尤其对于大型应用程序很有用。

    使用 Vuex 可以使得数据的流动更加清晰和可追踪,方便在复杂的应用中进行状态管理。它能够解决跨组件共享状态的问题,并提供一套明确的规则来定义和修改状态的逻辑。在大型项目中,使用 Vuex 可以使得数据流的管理和调试更加容易和高效。

     二.vuex的存值取值

    首先使用npm i -S vuex@3.6.2在cmd窗口中下载插件

     建立两个界面分别为:page1,page2

     到项目中src的router的index.js文件中配置路径

     

     在leftave中编写页面

     

    建立一个目录在目录里面建立4个js文件

    state定义变量 

    1. export default{
    2. eduName:'遇人不淑',
    3. aname:'',
    4. bname:''
    5. }

     mutations改变变量

    1. export default{
    2. seteduName:(state,payload)=>{
    3. state.eduName =payload.eduName
    4. }
    5. }

     getters获取变量

    1. export default{
    2. geteduName:(state)=>{
    3. return state.eduName;
    4. }
    5. }

    包裹以上四个js文件index 

    1. import Vue from 'vue'
    2. import Vuex from 'vuex'
    3. import state from './state'
    4. import getters from './getters'
    5. import actions from './actions'
    6. import mutations from './mutations'
    7. Vue.use(Vuex)
    8. const store = new Vuex.Store({
    9. state,
    10. getters,
    11. actions,
    12. mutations
    13. })
    14. export default store

    在main.js中添加store 目录

    编写page1 

     

    编写page2 

     测试结果

     

    三.vuex异步请求 

    在page1中编写

     在actions.js中编写代码

    1. export default{
    2. seteduNameAsync:(context,payload)=>{
    3. setTimeout(function() {
    4. context.commit('seteduName',payload);
    5. },10000);
    6. },
    7. seteduNameAjax:(context,payload)=>{
    8. let _this=payload._this;
    9. let url = _this.axios.urls.VUEX_AJAX;
    10. let params ={
    11. resturantName:payload.eduName
    12. }
    13. _this.axios.post(url,params).then(r=>{
    14. console.log(r);
    15. }).catch(e=>{
    16. })
    17. }
    18. }

    编写后台异步请求

     

    测试结果
     
  • 相关阅读:
    【二】2D测量 Metrology——set_metrology_model_param()算子
    一文读懂 Golang init 函数执行顺序
    OpenGL之纹理映射
    flink实战--如何基于java-agent技术增强Flink功能
    “5G+北斗”赋能千行百业,中海达亮相2023中国移动全球合作伙伴大会
    T1071 菲波那契数(信息学一本通C++)
    汇编语言——王爽
    一键自动化博客发布工具,用过的人都说好(知乎篇)
    windows桌面运维----第六天
    Pause Giant AI Experiments: An Open Letter(暂停大型人工智能实验: 一封公开信)
  • 原文地址:https://blog.csdn.net/2201_75455485/article/details/133777711