• 三十七、Vuex


    一、Vuex是一个专门为Vue.js应用程序开发的状态管理模式

    • 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
    • Vuex 也集成到Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
    • 状态管理:可以简单的将其看成把需要多个组件共享的变量全部存储在一个对象里面;然后将对象放在顶层的vue实例中,让其他组件可以使用。(Vuex就是为了提供一个在多个组件间共享状态的插件)

    二、Vuex状态管理图例

    三、实例

    App.vue文件

    <template>
      <div id="app">
        <h5>----------App内容----------</h5>
        <h2>{{message}}</h2>
        <h2>{{$store.state.counter}}</h2>
        <button @click="add">+</button>
        <button @click="sub">-</button>
    
        <h5>----------HelloVuex内容----------</h5>
        <!-- <hello-vuex :counter="counter"></hello-vuex> -->
        <hello-vuex/>
      </div>
    </template>
    
    <script>
    import HelloVuex from './components/HelloVuex.vue'
    
    export default {
      name: 'App',
      data() {
        return {
          message: "我是App组件",
        }
      },
      components: {
        HelloVuex
      },
      methods: {
        add(){
          this.$store.commit('increment')
        },
        sub(){
          this.$store.commit('deincrement')
        }
      }
    }
    </script>
    

    HelloVuex.vue文件

    <template>
      <div>
        <h2>{{$store.state.counter}}</h2>
      </div>
    </template>
    
    <script>
    export default {
      name: 'HelloVuex',
    }
    </script>
    
    <style>
    
    </style>
    

    store中的index.js文件,用于配置Vuex的相关信息 

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    //1.安装插件
    Vue.use(Vuex)
    
    //2.创建对象
    const store = new Vuex.Store({
      state:{
        counter: 1000
      },
      mutations:{
        //方法
        increment(state){
          state.counter++
        },
        deincrement(state){
          state.counter--
        }
      },
      actions:{
    
      },
      getters:{
    
      },
      modules:{
    
      }
    })
    
    //3.导出store对象
    export default store

    四、Vuex核心概念  

    • State  保存共享状态的位置
    • Getters 类似于组件中的计算属性
    • Mutation  修改状态信息
    • Action  做异步操作,之后再通过Mutation修改状态信息
    • Module  划分模块,针对于不同模块进行数据的保存
  • 相关阅读:
    BZOJ 2789: [Poi2012]Letters 树状数组 + 逆序对
    luogu 5468 [NOI2019]回家路线 最短路/暴力
    BZOJ 2427: [HAOI2010]软件安装 tarjan + 树形背包
    练手爬虫用urllib模块获取
    django安装以及配置
    web框架
    模拟百度进行图片搜索,有问题可以留言
    深入requests库params|data|json参数
    深入理解http1.x、http 2和https
    nodejs 实现 磁力链接资源搜索 BT磁力链接爬虫
  • 原文地址:https://www.cnblogs.com/wangshunyun/p/16184868.html
Copyright © 2020-2023  润新知