zoukankan      html  css  js  c++  java
  • vue——vuex安装及使用

    一、vuex 的理解

    官方解释:vuex是一个专为vue.js应用程序开发的状态管理模式。采用集中式存储管理应用的所有的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

    我的理解:全局变量,同 angular 中的根元素 $rootScope 

    例如: 有 模块a 和 模块b,想让 模块b 获取 模块a 的数据。

    这时候我们就可以定义 全局变量,模块a 的数据 赋值给全局变量 x,然后 模块b 再获取 x 。【 我们把 模块a 的数据叫 state,全局变量叫 store。模块b 叫 data 】

    二、安装

    在终端通过cd命令进入到项目里,然后使用以下命令进行安装:

    npm install vuex --save

    --save 参数的作用是在我们的包配置文件 package.json 文件中添加对应的配置。安装成功后, 可以查看 package.json 文件,你会发现多了"vuex": "^2.3.1"的配置:

    "dependencies": {
        "vue": "^2.3.3",
        "vue-resource": "^1.3.4",
        "vue-router": "^2.7.0",
        "vuex": "^2.3.1"
      },

    三、使用

    1、注册

    在 main.js 文件中导入并注册 vuex:

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

    2、项目中调用

    (1)在项目中的 src 目录下,创建 store.js文件:

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    export default new Vuex.Store({
      state:{
        count:0
      },
      mutations:{
        increment:state => state.count ++,
        decrement:state => state.count --,
      }
    })

    上面这段代码比较简单,首先导入并注册 vuex,再导出一个 vuex 实例,这个实例在 state 中定义了 count属性,其作用是用来计数的,然后在mutations中定义了两个方法,increment是对count进行加1处理,decrement是对count进行减1处理。

    (2)在 main.js导入:

    import store from './store'

    注意:store 的路径要注意写对。

    并且在 vue 实例中添加store属性,即可在全局的所有子组件中使用这个了:

    new Vue({
      el: '#app',
      router,
      store,
      components: { App },
      template: '<App/>'
    })

    (3)在子组件中简单的使用我们定义的store:

    <template>
      <div>
        <strong>{{ count }}</strong>
        <p>
          <button @click="increment">+</button>
          <button @click="decrement">-</button>
        </p>
      </div>
    </template>
    
    <script>
        export default {
            name: "login",
            data(){
              return{
                localCount:2
              }
            },
            methods: {
              increment: function (){
                this.$store.commit('increment')
              },
              decrement: function (){
                this.$store.commit('decrement')
              }
    
            },
            computed:{
              count: function (){
                return this.$store.state.count
              }
            }
        }
    </script>

    四、效果

       点击按钮+1-1  

     

     

     

     

     

  • 相关阅读:
    兼容性问题
    【浏览器渲染原理】 渲染树和页面渲染
    leetcode153. 寻找旋转排序数组中的最小值
    leetcode162. 寻找峰值
    各种常量池
    leetcode137. 只出现一次的数字 II
    leetcode136. 只出现一次的数字
    leetcode133. 克隆图
    ClassLoader分类
    overload和override
  • 原文地址:https://www.cnblogs.com/lyr1213/p/9263424.html
Copyright © 2011-2022 走看看