VUEX

作者: super静_jingjing | 来源:发表于2018-08-30 14:35 被阅读0次

    VUEX就是解决组件之间同一状态的共享问题,就是解决不同组件不同页面之间的数据共享,这两个组件或者页面是完全没有关系的;在小项目中尽量不要使用vuex,小项目可以使用localstorage和sessionstorage

    为什么不能用通知:
    通知适用于有关系的组件;如下图;在跟组件中引入A和B,那么在A和B之间,甚至A1和B2,A2和B之间都能使用通知,因为他们溯源到最后是和根组件有关系。有点像远方亲戚的感觉,他们之间可以使用通知


    image.png

    但是在项目中可能存在完全没有关系的组件,如下图,两个组件是用路由的方式动态加载的,页面加载了A路由就不会出现B,加载了B就不会出现A,这两个组件之间共享数据就需要使用VUEX,当然也可以使用html的本地缓存。但是缓存是有大小限制的,大型项目可能没有办法做到,也不够方便


    101535598263_.pic_hd.jpg

    使用:
    1、src目录下面新建一个vuex的文件夹
    2、vuex 文件夹里面新建一个store.js
    3、安装vuex

    cnpm install vuex --save
    

    4、在刚才创建的store.js引入vue 引入vuex 并且use vuex

    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
    

    5、定义数据

    /*1.state在vuex中用于存储数据*/
    var state={
       count:1
    }
    

    6、定义方法 mutations里面放的是方法,方法主要用于改变state里面的数据

    var mutations={
         incCount(){
              ++state.count;
          }
    }
    

    暴露

    const store = new Vuex.Store({
         state,
         mutations
    })
    export default store;
    

    完整的store.js:

    import Vue from 'vue';
    import Vuex from 'vuex';
    Vue.use(Vuex);
    // 1. state 在vuex中用于存储数据
    var state = {
        count:1
    }
    // 2. mutations放的是方法,主要用于改变state里的数据
    var mutations = {
        incCount(){
            ++state.count;
        }
    }
    //state  ===> state:state
    var store =  new Vuex.Store({
        state,
        mutations
    });
    export default store;
    

    组建里面使用vuex:
    1.引入 store

     import store from '../vuex/store.js';
    

    2、注册

    export default{
        data(){
             return {               
                msg:'我是一个home组件',
                value1: null,
             }
        },
        store,//注册引入的store
        methods:{
             incCount(){
                this.$store.commit('incCount'); /*触发incCount方法*/
             }
    
        }
    }
    

    3、获取state里面的数据

    this.$store.state.数据
    

    4、触发 mutations中incCount方法 改变 state里面的数据

    this.$store.commit('incCount');
    

    相关文章

      网友评论

          本文标题:VUEX

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