当前位置:首页 > VUE

vue实现简单的store

2026-01-20 05:53:19VUE

Vue 实现简单的 Store

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

使用 Vue 的响应式 API

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

import { reactive } from 'vue';

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

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

使用 provide/inject 跨组件共享

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

// 父组件提供 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 是官方推荐的状态管理方案:

vue实现简单的store

// 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实现

拖拽式编程vue实现

拖拽式编程在 Vue 中的实现方法 使用 HTML5 原生拖放 API Vue 可以结合 HTML5 的拖放 API 实现基础拖拽功能。通过 draggable 属性标记可拖拽元素,监听 dragst…

vue实现关键词轮播

vue实现关键词轮播

Vue 实现关键词轮播 基础实现方案 使用 Vue 的 v-for 和 setInterval 实现基础轮播效果: <template> <div class="keyword…

vue实现下拉刷新组件

vue实现下拉刷新组件

实现下拉刷新组件的核心思路 下拉刷新功能通常通过监听触摸事件、滚动位置和动画效果实现。Vue中可以利用自定义指令或封装组件完成,以下为两种常见实现方式。 基于自定义指令的实现 创建指令监听触摸事件,…

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

实现vue模版

实现vue模版

Vue 模板的基本结构 Vue 模板基于 HTML 语法,通过 Vue 的指令和插值实现动态渲染。以下是一个基础模板示例: <template> <div id="…

vue实现帖子

vue实现帖子

Vue 实现帖子功能 使用 Vue 实现帖子功能需要结合前端框架和后端数据交互,以下是实现的关键步骤和代码示例。 帖子列表展示 创建帖子列表组件,使用 v-for 渲染帖子数据,通过 axios 获…