当前位置:首页 > VUE

vue实现简单的store

2026-02-20 21:56:41VUE

Vue 实现简单 Store

在 Vue 中实现一个简单的 Store 可以通过多种方式完成,以下是几种常见的方法:

使用 Vue 的响应式系统

通过 Vue 的 reactiveref 创建一个响应式对象作为 Store:

import { reactive } from 'vue';

const store = reactive({
  state: {
    count: 0
  },
  increment() {
    this.state.count++;
  }
});

export default store;

在组件中使用:

import store from './store';

export default {
  setup() {
    return {
      store
    };
  }
};

使用 Vuex 的简化版本

Vuex 是 Vue 的官方状态管理库,但可以手动实现一个简化版本:

vue实现简单的store

import { reactive } from 'vue';

const createStore = () => {
  const state = reactive({
    count: 0
  });

  const mutations = {
    increment(state) {
      state.count++;
    }
  };

  return {
    state,
    commit(mutationName) {
      mutations[mutationName](state);
    }
  };
};

export const store = createStore();

在组件中使用:

import { store } from './store';

export default {
  setup() {
    return {
      store
    };
  }
};

使用 Provide/Inject

通过 Vue 的 provideinject 实现全局状态共享:

vue实现简单的store

import { provide, reactive } from 'vue';

const store = reactive({
  count: 0,
  increment() {
    this.count++;
  }
});

export const useStore = () => {
  provide('store', store);
  return store;
};

在子组件中使用:

import { inject } from 'vue';

export default {
  setup() {
    const store = inject('store');
    return {
      store
    };
  }
};

使用 Pinia 的简化版本

Pinia 是 Vue 的轻量级状态管理库,可以手动实现类似功能:

import { reactive } from 'vue';

const useStore = () => {
  const state = reactive({
    count: 0
  });

  function increment() {
    state.count++;
  }

  return {
    state,
    increment
  };
};

export default useStore;

在组件中使用:

import useStore from './store';

export default {
  setup() {
    const store = useStore();
    return {
      store
    };
  }
};

选择建议

  • 对于小型应用,使用 reactiveprovide/inject 足够。
  • 需要更严格的状态管理时,可以考虑手动实现类似 Vuex 或 Pinia 的简化版本。
  • 对于大型应用,直接使用 Vuex 或 Pinia 更合适。

标签: 简单vue
分享给朋友:

相关文章

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…

vue mvvm实现

vue mvvm实现

Vue MVVM 实现原理 Vue.js 是一个基于 MVVM(Model-View-ViewModel)模式的框架,其核心是通过数据绑定和响应式系统实现视图与数据的自动同步。以下是 Vue 实现 M…

实现vue cli

实现vue cli

安装 Vue CLI 确保系统中已安装 Node.js(版本建议 12.x 或更高)。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 安装完成后验证版本:…

vue实现心电图

vue实现心电图

Vue 实现心电图效果 在 Vue 中实现心电图效果通常需要结合 Canvas 或 SVG 进行动态绘图,模拟心电图数据的实时变化。以下是两种实现方式的核心思路和代码示例: 使用 Canvas 绘制…

vue实现路径

vue实现路径

Vue 实现路径的方法 在 Vue 中实现路径管理通常涉及 Vue Router 的使用,以下是一些常见的实现方法: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Route…

vue for实现

vue for实现

Vue 中的 v-for 指令 v-for 是 Vue.js 中用于渲染列表数据的核心指令,通过遍历数组或对象生成动态内容。 基本语法(数组) <ul> <li v-for="…