当前位置: 首页 > news >正文

类Vuex轻量级状态管理实现

引用自 摸鱼wiki

1. vuex

vuex是一个前端广泛流行的状态管理库,主要由以下几大模块组成:

  1. state:状态存储
  2. getter:属性访问器
  3. mutation:可以理解为一个同步的原子性事务,修改state状态
  4. action:触发mutation,可进行异步操作
  5. module:模块化

2. 类vuex状态库实现

得益于vue在2.6.0版本推出的observable API,我们可以用来监听对象的数据变化,实现一个简易的状态管理

2.1 自定义状态库 CustomStore 实现

主要实现了类vuex中的state、mutation、action部分

import Vue from 'vue';
import { updateUserAPI } from 'api';class CustomStore {state: {user: string,id: number}constructor() {const state = Vue.observable({user: '',id: 0,});this.state = state;}// mutationsetUser(user: string) {this.state.user = user;}setId(id: number) {this.state.id = id;}// actionasync updateUser(user: string) {try {await updateUserAPI(user);this.setUser(user);} catch (e) {console.error(e);}}
}export const customStore = new CustomStore();

2.2 在组件中调用

通过computed属性充当getter的角色,监听state的变化,并根据需要调整格式化返回值

<template><div @click="onClick">{{ id }}:{{ user }}</div>
</template><script lang="ts" setup>
import { customStore } from 'CustomStore'
import { computed } from 'vue'const id = computed(() => customStore.state.id)
const user = computed(() => customStore.state.user)function onClick() {customStore.updateUser('test')
}
</script>
http://www.lryc.cn/news/24743.html

相关文章:

  • Java 基本数据类型
  • 全网资料最全Java数据结构与算法-----算法分析
  • 【封装xib补充 Objective-C语言】
  • linux + jenkins + svn + maven + node 搭建及部署springboot多模块前后端服务
  • VBA之正则表达式(41)-- 快速标记两个星号之后的字符
  • VMware16安装MacOS【详细教程】
  • Netty学习(一):Netty概述
  • 【论文精读】Benchmarking Deep Learning Interpretability in Time Series Predictions
  • 自己第一次在虚拟机完整部署ssm项目心得体会
  • 操作系统权限提升(二十二)之Linux提权-SUDO滥用提权
  • 操作系统权限提升(二十四)之Linux提权-明文ROOT密码提权
  • Linux基本命令复习-面试急救版本
  • 随想录二刷Day09——字符串
  • 正点原子IMX6ULL开发板-liunx内核移植例程-uboot卡在Starting kernel...问题
  • 使用手工特征提升模型性能
  • 【运维有小邓】Oracle数据库审计
  • JDK下载安装与环境
  • FPGA纯verilog代码实现4路视频缩放拼接 提供工程源码和技术支持
  • Spark on YARN运行过程,YARN-Client和YARN-Cluster
  • NLP中一些工具列举
  • 面试官:给你一段有问题的SQL,如何优化?
  • 嵌入式 Linux 文件IO操作
  • 植物大战 二叉搜索树——C++
  • [MatLab]矩阵运算和程序结构
  • 【Leedcode】栈和队列必备的面试题(第四期)
  • Windows Server 2016搭建文件服务器
  • 零基础学SQL(十一、视图)
  • web,h5海康视频接入监控视频流记录三(后台node取流)
  • 网络安全从入门到精通:30天速成教程到底有多狠?你能坚持下来么?
  • 世界上最流行的编程语言,用户数超过Python,Java,JavaScript,C的总和!