当前位置:首页 > VUE

vue实现简单的store

2026-01-20 05:53:19VUE

Vue 实现简单的 Store

在 Vue 中可以通过多种方式实现简单的状态管理(Store),以下介绍几种常见方法:

使用 Vue 的响应式 API

通过 reactiveref 创建响应式对象,实现一个轻量级 Store:

vue实现简单的store

import { reactive } from 'vue';

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

// 在组件中使用
export default {
  setup() {
    return { store };
  }
}

使用 provide/inject 跨组件共享

适合小型应用或组件层级较深的场景:

vue实现简单的store

// 父组件提供 store
import { provide, reactive } from 'vue';

const store = reactive({ count: 0 });
provide('store', store);

// 子组件注入使用
import { inject } from 'vue';

const store = inject('store');

基于 Vuex 的简化实现

如果需要更结构化的状态管理,可以模仿 Vuex 的简化模式:

import { reactive } from 'vue';

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

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

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

export const store = createStore();

使用 Pinia(推荐)

对于现代 Vue 3 项目,Pinia 是官方推荐的状态管理方案:

// store/counter.js
import { defineStore } from 'pinia';

export const useCounterStore = defineStore('counter', {
  state: () => ({
    count: 0
  }),
  actions: {
    increment() {
      this.count++;
    }
  }
});

// 组件中使用
import { useCounterStore } from './stores/counter';

const counter = useCounterStore();
counter.increment();

每种方法适用于不同场景,小型项目可使用响应式 API 或 provide/inject,中大型项目推荐使用 Pinia。

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

相关文章

vue实现多个tab

vue实现多个tab

Vue 实现多个 Tab 的方法 使用动态组件切换 在 Vue 中可以通过动态组件 <component :is="currentTab"> 结合 v-for 和 v-bind 实现多个…

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中配置…

vue懒加载实现难吗

vue懒加载实现难吗

vue懒加载的实现难度 Vue懒加载的实现并不复杂,核心逻辑是通过动态导入(Dynamic Imports)和路由配置或组件异步加载完成。以下是具体实现方法: 路由懒加载实现 在Vue Rout…

vue   实现单选

vue 实现单选

Vue 实现单选功能 在 Vue 中实现单选功能可以通过多种方式,以下是几种常见的方法: 使用原生 <input type="radio"> 绑定 v-model 通过 v-model…

实现 vue ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要…

vue 实现jqslidedown

vue 实现jqslidedown

在 Vue 中实现类似 jQuery 的 slideDown 效果,可以通过 Vue 的过渡系统或 CSS 动画结合动态样式绑定来实现。以下是几种实现方式: 使用 Vue Transition…