当前位置:首页 > 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 框架实现的核心方法 基础项目搭建 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代轻量级应用。安装后通过命令行工具选择所需配置(如 Rou…

vue实现token

vue实现token

Vue 中实现 Token 认证的方法 在 Vue 中实现 Token 认证通常涉及前端与后端的交互,包括 Token 的获取、存储、发送和刷新等操作。以下是具体实现步骤: 获取 Token 用户登…

vue compile 实现

vue compile 实现

Vue 编译实现原理 Vue 的编译过程将模板字符串转换为渲染函数,主要分为解析、优化和代码生成三个阶段。 解析阶段(Parse) 将模板字符串转换为抽象语法树(AST)。Vue 使用正则表达式和有…

vue实现全屏

vue实现全屏

Vue 实现全屏功能的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 doc…

vue实现tap

vue实现tap

Vue 实现 Tap 事件 在移动端开发中,Tap 事件比 Click 事件更常用,因为 Click 事件有 300ms 延迟。以下是几种在 Vue 中实现 Tap 事件的方法。 使用第三方库 安装…

vue实现双向

vue实现双向

Vue 实现双向绑定的方法 Vue 的双向绑定主要通过 v-model 指令实现,它结合了数据绑定和事件监听,适用于表单元素(如 input、select、textarea 等)。以下是几种常见的实现…