zoukankan      html  css  js  c++  java
  • vuex 使用

    1. 简介

      Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式

      它采用集中式储存,管理应用的所有组件的状态。并以相应的规则,保证以一种可预测的方式发生变化(响应式)。

      如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。如果您的应用够简单,您最好不要使用 Vuex。

    2. 在项目里使用方法

      没安装vuex的自行安装:npm install vuex

      1. 创建vuex实例
        文件路径:项目/src/store/index.js

        import Vue from "vue";
        import Vuex from "vuex";
        
        Vue.use(Vuex); // vue使用Vuex
        
        export default new Vuex.Store({ // new Vuex.Store() 创建Vuex实例
          state: {},     // 数据仓库(数据的唯一来源)
          getters: {},   // 用来获取数据(计算属性)
          mutations: {}, // 用来修改数据的(相当于function,同步)
          actions: {},   // 用来提交mutation(异步)
          modules: {}    // 模块化
        });
      2. main.js中将vuex实例应用并挂载到vue对象上
        文件路径:项目/src/main.js

        import Vue from "vue";
        import App from "./App.vue";
        import router from "./router";
        import store from "./store"; // 引用vuex
        
        new Vue({ router, store, render: h => h(App) }).$mount("#app");
    3. 实战代码

      1. 简单实现count++ 使用到state,mutations

        src/store/index.js

        import Vue from "vue";
          import Vuex from "vuex";
        
          Vue.use(Vuex);
        
          export default new Vuex.Store({
            state: {
              count: 0,
            },     // 数据仓库(数据的唯一来源)
            mutations: {
              countChange(state) {
                state.conut++
              }
            }, // 用来修改数据的(相当于function,同步)
          });

        src/main.js内容同上2.2

        src/app.vue

        <template>
            <div id="app">
              <h1>count:{{ this.$store.state.count }}</h1>
              <button @click="contChangeF">点击count+1</button>
            </div>
          </template>
        
          <script>
          export default {
            name: "app",
            methods: {
              contChangeF() {
                this.$store.commit('countChange'); // 调用mutations中countChange方法,来修改数据。
              }
            }
          }
          </script>
         拓展:使用commit第二个参数,通过赋值实现上述功能。

        src/store/index.js

        import Vue from "vue";
          import Vuex from "vuex";
        
          Vue.use(Vuex);
        
          export default new Vuex.Store({
            state: {
              count: 0,
            },     // 数据仓库(数据的唯一来源)
            mutations: {
              countChange(state, data) {
                state.conut = data;
              }
            }, // 用来修改数据的(相当于function,同步)
          });

        src/main.js内容同上2.2

        src/app.vue

        <template>
            <div id="app">
              <h1>count:{{ this.$store.state.count }}</h1>
              <button @click="contChangeF">点击count+1</button>
            </div>
          </template>
        
          <script>
          export default {
            name: "app",
            methods: {
              contChangeF() {
        var v =
        this.$store.state.count++;
        this.$store.commit('countChange',v); // 调用mutations中countChange方法,来修改数据。
        }
        }
        }
        </script>
      2. 进阶实战-用户登录及权限控制

  • 相关阅读:
    Linux下通用打印系统CUPS使用教程
    psql 查询表大小
    vim自动保存折叠
    VIM设置代码折叠
    使用 ipdb 调试 Python
    在 Vim 中使用 pydiction 对 Python 进行代码补全
    wget 下载整个网站,或者特定目录
    dpkg: warning: files list file for package `*****' missing, assuming package has no files currently installed解决办法
    Windows安装Redis并添加本地自启动服务并解决客户端dll报错
    windows mysql绿色版配置Mysql5.7.X
  • 原文地址:https://www.cnblogs.com/myflowers/p/14734193.html
Copyright © 2011-2022 走看看