• 欢迎光临~

vue - vuex

开发技术 开发技术 2022-05-21 次浏览

VueX是适用于在Vue项目开发时使用的状态管理工具。

试想一下,如果在一个项目开发中频繁的使用组件传参的方式来同步data中的值,一旦项目变得很庞大,管理和维护这些值将是相当棘手的工作。

为此,Vue为这些被多个组件频繁使用的值提供了一个统一管理的工具——VueX。

在具有VueX的Vue项目中,我们只需要把这些值定义在VueX中,即可在整个Vue项目的组件中使用。

  • state 存放状态
  • mutations state成员操作
  • getters 加工state成员给外界
  • actions 异步操作
  • modules 模块化状态管理

 

使用vuex:

main,js

import Vue from 'vue'
import App from './App.vue'
//引入store
import store from './store/moon'

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  //使用store
  store
}).$mount('#app')

/src/store/moon.js

import Vue from 'vue'
//引入vuex
import Vuex from 'vuex'
//使用vuex插件
Vue.use(Vuex)

//异步操作
let actions={
  setName(context,value){
    context.commit('SETNAME',value)
  }
}
//state成员操作
let mutations={
  SETNAME(state,value){
    state.name=value
  }
}
//加工state成员给外界
let getters={
  bigValue(state){
    return state.balance*10
  }
}
//state 存放状态
let state={
  name: 'levi',
  balance: 100,
  bodyObj: {
    food: 'pizza',
  }
}

export default new Vuex.Store({
  actions,
  mutations,
  state,
  getters
})

使用

    methods: {
      vuexs(){
        //使用actions
        this.$store.dispatch('setName','levi')
        //使用mutations
        this.$store.commit('SETNAME','levi')
        //使用getters
        let big=this.$store.getters.bigValue
        //使用state
        let name=this.$store.state.name
        let balance=this.$store.state.balance
      }
    }

vue - vuex

 

程序员灯塔
转载请注明原文链接:vue - vuex
喜欢 (0)