当前位置:首页 > 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 的官方状态管理库,但可以手动实现一个简化版本:

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 实现全局状态共享:

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;

在组件中使用:

vue实现简单的store

import useStore from './store';

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

选择建议

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

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

相关文章

vue 实现拖拽

vue 实现拖拽

Vue 实现拖拽功能 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性和相关事件实现拖拽功能。 <template> &l…

vue实现switch

vue实现switch

Vue 实现 Switch 开关组件 在 Vue 中实现 Switch 开关组件可以通过自定义组件或使用现有 UI 库完成。以下是几种常见实现方式: 自定义 Switch 组件 创建一个基础 Sw…

vue实现切换

vue实现切换

Vue 实现切换功能的方法 在 Vue 中实现切换功能可以通过多种方式实现,以下是一些常见的方法: 使用 v-if 和 v-else 指令 通过条件渲染实现切换功能,适用于简单的显示/隐藏场景。…

vue 实现视频

vue 实现视频

Vue 实现视频播放功能 使用 Vue 实现视频播放功能可以通过 HTML5 的 <video> 标签或第三方库(如 video.js)来实现。以下是两种常见的方法: 使用 HTML5…

vue实现数组

vue实现数组

Vue 实现数组操作的方法 在 Vue 中,数组的操作需要特别注意响应式的问题。Vue 提供了一些方法来确保数组的变动能够触发视图更新。 响应式数组方法 Vue 对以下数组方法进行了封装,确保它们能…

vue 实现筛选

vue 实现筛选

实现筛选功能的基本方法 在Vue中实现筛选功能通常涉及以下几个核心步骤: 数据绑定与筛选逻辑 使用v-model绑定筛选条件到Vue实例的数据属性,结合计算属性实现动态筛选: data() {…