vuex 状态管理 基本使用

前言

同样作为插件的vuex,它提供了什么?
多组件之间的状态管理,何为状态管理?
从单组件说起,一般的单组件有三种状态,state/view/actions
即,数据/页面/事件(行为);
他们之间的关系是,数据改变使页面更新,页面的用户操作发生事件,事件反过来作用于数据

多组件也需要这种类似单页面的状态管理,所以就引入了VUEX

基本使用

在src下,创建/store目录来编写vuex相关代码
/src/store/index.js

import Vue from 'vue';
import vueX from 'vuex';

//这个会执行Vue.install()方法,安装插件
Vue.use(vueX);
const store = new vueX.Store({
    
    
	//对应图片中的state数据
	state:{
    
     counter : 2077},
	
    //对应图片中的mutations修改
    mutations:{
    
     add(){
    
     this.state.counter ++;}},
    
    actions: {
    
    },//对应图片中的actions行为
    getters: {
    
    },
    modules: {
    
    },
});
export default store;

在这里插入图片描述
在/src/main.js中传入导出的store模块

//main.js
import Vue from 'vue';
import store from './store/index';
import App from './components/app';

new Vue({
    
    
	el: '#app',
	store,
	render: h=>h(App);
})

使用vuex进行state的数据修改,并用devtools进行追踪
首先,给浏览器安装vue.js插件
其次,在/store/index.js里面添加修改state数据的方法,即如何修改state中的数据,例如,add(){ this.state.counter ++;}
随后,在app.vue中利用action去提交修改请求,并附带参数


//app.vue
<template>
  <div id="app">
    <h1>cxw组件内容</h1>
    <h1>{
    
    {
    
     this.$store.state.counter}}</h1>  
    <button @click = "btnClick">ADD</button>
    <h1>halo组件内容</h1> 
    <Halo />
  </div>
</template>
<script>
export default {
    
    
  name: 'Cxw',
  components: {
    
    
  },
  methods:{
    
    
      btnClick(){
    
    
        this.$store.commit('add');
      }
  }
};
</script>


猜你喜欢

转载自blog.csdn.net/weixin_42557786/article/details/115162941