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. 进阶实战-用户登录及权限控制

posted @   落花看风雪  阅读(70)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示