vuex

vuex是vue中的状态管理管理模式


image.png

公共的变量存放在state中,批量异步数据发生改变通过dispatch触发相应的action,然后通过commit触发mutations进而数据变化;也可以通过mutations进行同步操作触发数据变化。
store文件夹下的index.js文件

第一种情况

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    state:{
        city:'北京'
    },
    actions:{
        changeCity(ctx,city){
            ctx.commit('changeCity',city)
        }
    },
    mutations:{
        changeCity(state,city){
            state.city=city
        }
    }
})

触发数据变化的页面

<div class="button-wrapper" v-for="item of hot" :key="item.id" @click="handleCityClick(item.name)">
    <div class="button">{{item.name}}</div>
</div>
methods:{
  handleCityClick(city){
    this.$store.dispatch('changeCity',city)
  } 
}//通过dispatch触发action中的changeCity,同时将city传入,触发commit方法,将变化数据city修改到state中

第二种情况

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    state:{
        city:'北京'
    },
    mutations:{
        changeCity(state,city){
            state.city=city
        }
    }
})

触发数据变化的过程

methods:{
  handleCityClick(city){
    this.$store.commit('changeCity',city)
  }
},
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 安装 npm npm install vuex --save 在一个模块化的打包系统中,您必须显式地通过Vue.u...
    萧玄辞阅读 2,974评论 0 7
  • vuex 场景重现:一个用户在注册页面注册了手机号码,跳转到登录页面也想拿到这个手机号码,你可以通过vue的组件化...
    sunny519111阅读 8,082评论 4 111
  • 上一章总结了 Vuex 的框架原理,这一章我们将从 Vuex 的入口文件开始,分步骤阅读和解析源码。由于 Vuex...
    你的肖同学阅读 1,830评论 3 16
  • 目录 组件化 组件通信 状态管理 Vuex 是什么 Vuex 有什么特点 Vuex 解决了什么问题 什么类型的数据...
    前端小华子阅读 2,021评论 0 16
  • Vuex 是什么? ** 官方解释:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式**。它采用集中...
    Rz______阅读 2,328评论 1 10