美文网首页
Vue学习(47)vuex(2)

Vue学习(47)vuex(2)

作者: 哆啦C梦的百宝箱 | 来源:发表于2022-04-19 19:48 被阅读0次
    1. 搭建vuex
      1. 创建文件:src/store/index.js
    /引入Vue核心库
    import Vue from 'vue'
    //引入Vuex
    import Vuex from 'vuex'
    //应用Vuex插件
    Vue.use(Vuex)
    
    //准备actions对象——响应组件中用户的动作
    const actions = {}
    //准备mutations对象——修改state中的数据
    const mutations = {}
    //准备state对象——保存具体的数据
    const state = {}
    
    //创建并暴露store
    export default new Vuex.Store({
        actions,
        mutations,
        state
    })
    
    1. 在main.js中创建vm时传入store配置项
    ......
    //引入store
    import store from './store'
    ......
    
    //创建vm
    new Vue({
        el:'#app',
        render: h => h(App),
        store
    })
    
    1. 在store.js中追加getters配置
    ......
    
    const getters = {
        bigSum(state){
            return state.sum * 10
        }
    }
    
    //创建并暴露store
    export default new Vuex.Store({
        ......
        getters
    })
    
    1. 初始化数据、配置actions、配置mutations,操作文件store.js
    //引入Vue核心库
    import Vue from 'vue'
    //引入Vuex
    import Vuex from 'vuex'
    //引用Vuex
    Vue.use(Vuex)
    
    const actions = {
        //响应组件中加的动作
        jia(context,value){
            // console.log('actions中的jia被调用了',miniStore,value)
            context.commit('JIA',value)
        },
    }
    
    const mutations = {
        //执行加
        JIA(state,value){
            // console.log('mutations中的JIA被调用了',state,value)
            state.sum += value
        }
    }
    
    //初始化数据
    const state = {
       sum:0
    }
    
    //创建并暴露store
    export default new Vuex.Store({
        actions,
        mutations,
        state,
    })
    
    知识点

    1: 组件中读取vuex中的数据:$store.state.sum
    2: 组件中修改vuex中的数据:
    $store.dispatch('action中的方法名',数据) 或 $store.commit('mutations中的方法名',数据)
    备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,即不写dispatch,直接编写commit
    3: getters的使用:当state中的数据需要经过加工后再使用时,可以使用getters加工
    组件中读取数据:$store.getters.bigSum

    相关文章

      网友评论

          本文标题:Vue学习(47)vuex(2)

          本文链接:https://www.haomeiwen.com/subject/qjzsertx.html