vuex用法

vuex

      vuex解决不同组件的数据共享,数据持久化。

      1.安装:

        npm install vuex --save

      2.在main.js导入包

        import Vuex from 'vuex'

      3.在main.js注册包

        Vue.use(vuex)

      4.在main.js里面new Vuex.store实例,得到一个仓储对象。

        var store = new Vuex.Store({

          state:{

            //state是组件中的data,专门用来存储数据的

            count: 0 //全局有一个0数据

            //如果在组件中想要访问store中的数据,只能通过this.$store.state.***来访问

            //例如访问上面0:<input type="text" v-model="$store.state.count">

          },

          mutations: {//mutations是方法,主要用于·

            //如果要操作store中的state值,只能通过调用mutations提供的方法,才能操作对用的数据

            //不推荐直接操作state中的数据,因为万一导致数据紊乱,不能快速定位到错误的原因,因为,每个组件都可能有操作数据的方法;

            increment(state){  //increment是方法名,第一个参数state是规定死的。

              state.count++

              }

              //注意:如果组件想要调用mutations中的方法,只能使用this.$store.commit('方法名')

              //这种调用mutations方法的格式,和this.$emit('父组件中方法名')

          }

        }) 

      5.在main.js里面挂载store(和挂载路由一样)

        const vm = new Vue({

          el: '#app',

          render: c => c(app),

          router //挂载路由

          store //将vuex创建的store 挂载到VM实例上。

          //只要挂载到vm上,任何组件都能使用store来存取数据

        })

        vuex的使用:

        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;

        组建里面使用vuex:

          1.引入 store

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

          2、注册

            export default{

              data(){

                  return {             

                    msg:'我是一个home组件',

                value1: null,

                  }

              },

              store,  //注册

              methods:{

                  incCount(){

                this.$store.commit('incCount');  /*触发 state里面的数据*/

                  }

              }

                }

          3、获取state里面的数据 

            this.$store.state.数据名

          4、触发 mutations 改变 state里面的数据

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 安装 npm npm install vuex --save 在一个模块化的打包系统中,您必须显式地通过Vue.u...
    萧玄辞阅读 8,001评论 0 7
  • vuex 场景重现:一个用户在注册页面注册了手机号码,跳转到登录页面也想拿到这个手机号码,你可以通过vue的组件化...
    sunny519111阅读 12,446评论 4 111
  • Vuex是什么? Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件...
    萧玄辞阅读 8,307评论 0 6
  • vuex是一个状态管理模式,通过用户的actions触发事件,然后通过mutations去更改数据(你也可以说状态...
    Ming_Hu阅读 6,112评论 3 3
  • Vuex简介 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 State: 驱动应用的数据源; V...
    SunnySky_阅读 3,388评论 0 1

友情链接更多精彩内容