【Vue】Vuex

DeepSpeed Zero3 Offload实战:从GCC版本检查到环境配置的完整避坑指南 本文是一份针对DeepSpeed Zero3 Offload部署的完整避坑指南。针对训练中常见的`AttributeError: ‘DeepSpeedCPUAdam‘ object has no attribute ‘ds_opt_adam`报错,文章深入剖析了其根源在于GCC编译器版本过低。指南提供了从系统GCC版本深度探查、安全启用高版本GCC环境,到DeepSpeed一致性安装验证的全链路实战方案,旨在帮助用户构建稳定的大模型训练环境。 阅读详情

Vue 状态管理工具 — Vuex

1.简介

Vuex 是一个专门为 Vue.js 应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件状态,并以相应的规则保证状态以一种可预测的方式发生变化。可以理解为:将多个组件共享的变量全部存储在一个对象里面,然后将这个对象放在顶层的 Vue 实例中,让其他组件可以使用,它最大的特点是响应式。

状态 — 实际上就是共享的数据,有时也称为状态数据,例如:A、B两个组件之间共用的某个对象n。

所以,一般情况下,我们会在 Vuex 中存放一些需要在多个界面中进行共享的信息。比如用户的登录状态、用户名称、头像、地理位置信息、商品的收藏、购物车中的物品等,这些状态信息,我们可以放在统一的地方,对它进行保存和管理。

2.搭建 Vuex 环境

2.1 安装
npm install --save vuex@版本号

这里注意,vue 的 2.x 版本对应 vuex 的 3.x 版本,vue 的 3.x 版本对应 vuex 的 4.x 版本

2.2 配置

配置 Vuex 的第一步是创建store。

一般来说,实际开发中的标准方法是,在 src 中创建一个 store 文件夹,并在其中保存一个 index.js 来创建store,然后再直接应用。

Vue2 创建方式
  1. 创建store:

    // index.js
    // 首先引入Vuex并使用插件
    import Vue from 'vue
    import Vuex from 'vuex'
    
    
    //1.安装插件,不然会报错(不允许在使用插件之前创建store!)
    Vue.use(Vuex)
     
    //2.创建对象
    const store = new Vuex.Store({
      state:{
        // ...
      },
      mutations:{
        // ...
      },
      actions:{
        // ...
      },
      getters:{
        // ...
      },
      modules:{
        // ...
      }
    })
    //3.导出使用
    export default store
    
  2. 应用store:

    // 在入口文件 main.js 中创建Vue实例时,配置 store 选项
    import store from './store/index.js'
    ...
    new Vue({
        el: '#app',
        render: h => h(App),
        store: store,
    })
    

完成这两步后,此时$store属性就会出现在Vue实例对象以及组件实例对象身上了!

后续,要使用store时,直接用this.$store即可获取到!

Vue3 创建方式

与 Vue2 不同,在 Vue3 中不再使用Vuex.Store({...})这一API,而是引入了新的方法createStore({...})来创建store。

同时,也不再需要在创建store前应用插件了!

在创建store之前,只需要在 main.js 中使用一下插件即可:app.use(vuex)

  1. 创建store:

    // index.js
    import { createStore } from 'vuex'
    
    export default createStore("xxx", {
      state:{
        // ...
      },
      mutations:{
        // ...
      },
      actions:{
        // ...
      },
      getters:{
        // ...
      },
      modules:{
        // ...
      }
    })
    
  2. 使用store:

    在 Vue3 中,由于在 setup 函数中无法获取this指针,所以不再通过this.$store来使用store,而是在需要使用store的模块中,引入 src/store/index.js 中暴露出来的useStore方法!

    <!-- xxx.vue -->
    <template>
    	...
    </template>
    
    <script setup>
    import { useStore } from '@/store/index.js'
    
    ...
    const store = useStore();
        
    ...
    </script>
    

    即,通过一个变量接收useStore()方法返回的store实例,并通过这个实例来访问、修改store。

3.Vuex的核心概念

vuex中一共有五个状态 State Getter Mutation Action Module

下面是官方给出的 Vuex 状态管理图例:
在这里插入图片描述

3.1 State

提供唯一的公共数据源,所有共享的数据统一放到store的state进行储存

在vuex中state中定义的数据,可以在任何组件中进行调用!

需要注意的是,读取 Vuex 中的数据时,可以直接通过this.$store.state.xxx或store.state.xxx来获取。但是要修改其中的数据时,需要用dispatch或commit方法!

以 Vue2 中的使用为例:

this.$store.dispatch('actions中的某一方法名', 数据)
this.$store.commit('mutations中的某一方法名', 数据)

那么什么时候使用dispatch方法,什么时候又要使用commit方法呢?

实际上,从上面的使用方式中,就可以看出这两者的区别,即:dispatch方法调用的是actions中的方法,而commit方法调用的则是mutation中的方法!

那么这两者的区别又在哪?关于这一点后面会进行介绍,先往下看。

3.2 Mutation

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的事件类型 (type)和一个回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数/

定义 Mutation 中的方法时:

参数state是必要的,同时也可以直接传递一个参数,例如:

mutations: {
	add(state, num) {
		state.count = state.count + num
	},
}

而要使用 Mutation 中的方法,就需要用commit方法触发:

this.$store.commit("add", 5);	// Vue2
store.commit("add", 5);		    // Vue3
3.3 Action

Action 和 Mutation 相似,一般不用 Mutation 进行异步操作,若要进行异步操作,使用 Action

这里就可以回答上面那个问题,Action 与 Mutation 的区别在于:Action 中往往用于进行一些异步操作,例如定时器、向后端接口请求数据等等。Mutation 则往往用于执行一些同步操作。而这样设计是为了方便 devtools 跟踪数据变化,从而方便管理。

因此上面所说仅仅是规范,而不是逻辑上的不允许!

所以,对于上面的问题,即使用dispatch和commit方法的时机,可以总结为:若没有网络请求或其它异步业务逻辑,组件中也可以越过 Action,直接调用 Mutations 中的方法,即直接使用commit方法!

而至于 Action 的使用,实际上与 Mutation 是相同的。

首先定义 Action 中的方法:

Action 中的方法接收一个必要参数context,即上下文,实际上就是store对象!同样的,其也可以接收一些自定义的参数。

actions: {
	asyncAdd(context,num) {
		setTimeOut(() => {
            context.commit("add", num)	// 通过Mutation中的方法改变state
        }, 1000);
	},
}

然后通过dispatch方法触发:

this.$store.commit("asyncAdd", 5);	// Vue2
store.commit("asyncAdd", 5);	    // Vue3

实际上,这里可以发现,在 Action 中处理异步操作时,其内部仅仅是处理异步逻辑,而真正改变state还是通过 Mutation 中的方法!

3.4 Getter

当 state 中的数据需要经过加工后再使用时,可以使用 Getter 进行加工!

Getter 实际上与计算属性 computed 十分相似,它们都是用于对数据进行加工后再使用,它们也同样会进行缓存!

例:

getters: {
	powerCount(state) {
        return state.counter * state.counter;
    },
    ...
}

可以看到 Getter 中的方法,同样接收一个state作为必要参数,但其不需要传入其他参数。

使用时,直接获取即可:

this.$store.getters.powerCount  // Vue2
store.getters.powerCount        // Vue3

但是如果真的需要传入参数,该怎么办呢?

此时可以在对应方法中,返回一个函数,例如:

moreAgeStu(state){
   return function(age){
     return state.students.filter(s => s.age > age)
   }
}

这样,在调用时传入参数即可:

this.$store.getters.moreAgeStu(18)  // Vue2
store.getters.moreAgeStu(18)        // Vue3

4.Vuex的4个map方法 — 优化程序

4.1 mapState() — 映射state中的数据为计算属性

借助mapState()方法,我们可以根据state生成计算属性,从state中读取数据,实际上是由mapState()方法生成了多个对应的函数返回state中指定属性的值!

如何使用?

有两种方法:

  1. 对象写法:

    import { mapState } from 'vuex'
    ...
    
    computed({
    	// 使用ES6的扩展运算符将生成的计算属性展开在computed中
        // 对象写法可以指明生成的计算属性的名称
    	...mapState({sum: 'sum', school: 'school', ...})
    })
    
  2. 数组写法:

    import { mapState } from 'vuex'
    ...
    
    computed({
    	// 仅指定需要读取的state中属性的名称,并将这个名称作为生成计算属性的名称!
    	...mapState(['sum', 'school', ...])
    })
    
4.2 mapGetters() — 映射getters中的数据为计算属性

借助mapGetters()方法,我们可以根据getters生成计算属性,从getters中读取数据,实际上是由mapGetters()方法生成了多个对应的函数返回getters中指定属性的值!

同样有两种写法:

  1. 对象写法:

    import { mapGetters } from 'vuex'
    ...
    
    computed({
    	// 使用ES6的扩展运算符将生成的计算属性展开在computed中
        // 对象写法可以指明生成的计算属性的名称
    	...mapGetters({bigSum: 'bigSum', ...})
    })
    
  2. 数组写法:

    import { mapState } from 'vuex'
    ...
    
    computed({
    	// 仅指定需要读取的getters中属性的名称,并将这个名称作为生成计算属性的名称!
    	...mapGetters(['bigSum', ...])
    })
    
4.3 mapActions() — 生成与actions对话的方法

借助mapActions()方法,我们可以生成与 actions 对话的方法,即其中包含$store.dispatch('xxx',value)的方法!

在 Vue2 中的使用如下:

import { mapActions } from 'vuex'
...
method: {
	...mapActions(['ADD', 'SUB'])	
}
4.4 mapMutations() — 生成与mutations对话的方法

借助mapMutations()方法,我们可以生成与 mutations对话的方法,即其中包含$store.commit('xxx',value)的方法!

在 Vue2 中的使用如下:

import { mapMutations } from 'vuex'
...
method: {
	...mapMutations(['ADD', 'SUB'])	
}
4.5 在Vue3中的使用

由于 Vue3 中,不再使用data、method、computed等模块,所以导致上述4个方法在 Vue3 中的映射效果不如人意。那么,我们如何才能在 Vue3 中使用这些API呢?

答案是封装这4个方法!

详情参见:封装vuex的4个map方法

5.Vuex模块化 + 命名空间

当遇见大型项目时,数据量大,store就会显得很臃肿。为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块。

而为了模块拥有更高的封装度和复用性,我们还可以配合命名空间配置项namespace一起使用。即,在模块中开启 namespace 配置:

xxxModule: {
	namespace: true,
    state: {
    	...
    },
    ...
}

从而使其成为带命名空间的模块。当模块被注册后,它的所有 getter、action 及 mutation 都会自动根据模块注册的路径调整命名。

所以,使用时需要指定模块名!

Cilium动手实验室: 精通之旅---5.Mutual Authentication with Cilium 在Cilium 入门实验室中,您将在受《星球大战》启发的场景中实施高级第 3-7 层网络策略。在实验结束时,您将实施强大的网络策略,并通过微分段保护 Empire 免受来自叛乱的攻击。在本实验中,您将重新部署《星球大战》演示应用程序,但除了网络策略之外,您还将了解如何在工作负载之间实施相互身份验证。 阅读详情

相关推荐

.NET适配HarmonyOS进展 1. 前言

目前国产化系统浪潮下,适配鸿蒙是中国软件大势所趋,.NET作为最适合开发客户端语言之一,适配鸿蒙系统(HarmonyOS Next)是目前.NET开发者最关心的事情。我目前业余时间正在移植Avalonia到HarmonyOS,去年在.NET Conf CN上分享过,目前又取得一点进展,所以本文把所有问题进行整合与大家进行分享。

2301_76476890的博客 1461

vue如何把值放入数组里面去_如何通知VueJS / Vuex数组中的值更改?

当我更新商店数组中的值时,界面不反映更改。目标:我正在尝试显示一个简单的扫雷网格。一旦我点击一个单元格,附加到该单元格的对象应该将isRevealed更新为true以表示已显示并且Vuejs应该添加类挖掘到那个牢房。工作原理:isRevealed切换为true。什么工作:只使用道具一切正常,但尝试学习VueJS并包括Vuex存储UI不会再更新阵列。结构:App显示网格和网格显示多个单元格。适用于V...

weixin_31014835的博客 1345

利用Virtuoso IC 618进行LDO稳定性分析与补偿设计

本文详细介绍了如何利用Virtuoso IC 618进行LDO稳定性分析与补偿设计。通过搭建仿真环境、运行STB分析诊断环路问题,并深入探讨密勒补偿、调零电阻等关键技术,帮助工程师在Virtuoso平台中高效完成LDO的稳定性优化与验证,确保芯片在各种工艺角下的鲁棒性。

weixin_29170327的博客 162

30.VueJS学习-Vue Store(Vuex)

在 Vue 中,Vue Store(通常也称为 Vuex)是一个专为 Vue.js 应用程序开发的状态管理模式和库。

qq_34334992的博客 968

家庭网络中,路由器和交换机的连接顺序

它的目的是给路由器增加端口,用户访问互联网的速度比情况一要快,常用于办公网络、家庭成员多的场景。光纤入户首先连接的肯定是光猫,而在光猫的后面,是先连接交换机?还是应该接路由器呢?家庭网络中路由器和交换机的先后连接顺序。它目的是让更多的用户访问互联网。常用于一些超大型机房、网吧等。至于路由器和交换机的区别。两者之间很多功能都有兼容。但用户上网速度相对较慢。在技术日益迭代的今天。

m0_74075744的博客 1万+

微信小程序中蓝牙打印机中文编码处理:使用iconv-lite库

本文介绍了微信小程序集成蓝牙打印机时中文乱码问题的解决方案。由于打印机通常仅支持GBK/GB2312编码,而小程序使用UTF-8,导致中文显示异常。通过引入轻量级iconv-lite库进行编码转换,可高效解决该问题。文章详细说明了从库安装、编码转换到蓝牙发送的实现步骤,并提供了完整代码示例。关键注意事项包括编码验证、分段发送和兼容性测试。该方法经实际验证,能有效保障中文打印的准确性,适用于零售、物流等场景。

canglingyue的专栏 1309

VueJS中学习使用Vuex详解

VueJS中学习使用Vuex详解 转载:https://segmentfault.com/a/1190000015782272 在SPA单页面组件的开发中 Vue的vuex和React的Redux 都统称为同一状态管理,个人的理解是全局状态管理更合适;简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一个组件里进行获取、进行修改,并且你的修改可以得到全局的响应...

weixin_30364325的博客 149

ROS-Industrial :simple_message

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录1. 概述2. 协议(Protocol)3. HEADER解析3.1 MSG_TYPE3.2 COMM_TYPE3.3 REPLY CODE 1. 概述 Simple_Message是ROS-Industrial的一部分,定义了用于与工业机器人控制器通信的简单消息连接协议。另外还包括处理连接受限系统的处理器和管理器类。 2. 协议(Protocol) 简单消息(simplemessage)协议定义了ROS的驱动层和机器人控制器之.

flsxyw的博客 780

【Vuejs】866- Vuex 4 正式发布:打包现在与 Vue 3 一致

作者 | Vuex 官方博客译者 | 王强策划 | 李俊辰 来源 |前端之巅Vuex 是一个专门为 Vue.js 应用程序开发的状态管理模式。Vuex 采用集中式存储管理应用的...

pingan8787 524

LAMMPS实例教程—In文件详解

本博文主要介绍专栏 《LAMMPS实例教程—In文件详解》, 针对于 Lammps 可分析的物理过程进行讲解,提供 In 文件以及后处理方法,持续更新。 目前分为8个专题: 1)力学专题、2)传热专题、3)相变专题、4)界面专题、5)吸附专题、6)流动专题、7)物性专题以及8)基础理论专题。

Rockyoung 3万+

UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一)

UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一)

m0_46364958的博客 4345

vuejs全家桶之vuex

什么是vuex? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。 总结一下上面官方给出的解释: 注意1: vuex 只能在v...

RyleeLouth的博客 332

使用STM32制作智能窗帘控制

以上就是一个简单的基于STM32的智能窗帘控制代码案例。通过感知光线强度和控制步进电机的旋转,我们可以实现智能窗帘的自动开启和关闭。通过定时器的中断来控制步进电机的旋转,从而实现窗帘的开启和关闭动作。最后,我们需要实现主函数和中断函数。在主函数中,我们需要初始化硬件资源,然后进入一个无限循环来不断检测光敏电阻的值,并根据其值来控制窗帘的开启和关闭。接下来,我们需要编写功能函数,用于控制窗帘的开启和关闭。然后,我们需要配置STM32开发环境,并创建一个新的工程。接下来,我们初始化相关的硬件资源。

2401_85258012的博客 276

探索数据持久化的艺术:Vuejs-storage,您的Vue与Vuex数据守护者

探索数据持久化的艺术:Vuejs-storage,您的Vue与Vuex数据守护者 在Web开发的浩瀚宇宙中,存储用户数据始终是至关重要的一步。今天,我们为你揭秘一款小巧而强大的开源工具——vuejs-storage,它让Vue.js和Vuex应用的数据持久化变得轻而易举,正如其名,它将你的数据轻轻一握,存入本地。 项目介绍 vuejs-storage是一款专为Vue.js及其状态管理库Vuex设计...

gitblog_00048的博客 420

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

5个Vuex插件 让你的VueJS项目开发速度提升更快

使用Vuex管理Vue.js应用程序的状态有很多充分的理由。首先,使用Vuex插件添加超酷功能非常容易。Vuex社区的开发人员已经创建了大量免费插件供您使用,其中包含您可以想象的许多功能,以及一些您可能无法想象的功能。 下面展示使用Vuex插件轻松解决下一个项目的五个功能。 缓存操作 语言本地化 会话保持 管理多个加载状态 同步标签 缓存操作...

编程知识分享 575

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Vue—— vuex详解,彻底搞懂vuex

本文主要介绍vue中 Vuex 的相关知识点!!!!

Bonsoir777的博客 4万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

vuejs2.0关于用axios结合vuex开发

vuex:index.js,   actions.js,     mutations.js,       getters.js 1.index.js中 import Vuex from 'vuex' import Vue from 'vue' import actions from './actions' import mutations from './mutations' import

milli236的博客 853

VueJS中使用Vuex

Vuex是一个专门为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。简单来讲就是在state中定义了一个数据后,可以在项目中的任何一个组件上对该数据进行获取和修改,修改后的数据会在全局上相应变更。 安装vuex相关依赖 npm install vuex --save 然后 在src文件目录下新建一个名为st...

aiyawei123的博客 418

vueJS07 vuex与mysql

修改npm的镜像源 npm config set registry https://registry.npm.taobao.org npm config list 查看源的信息了 1.Vuex Vuex是一套公共的状态管理方案,能够进行多组件之间的数据共享。 组件之间通信的方式: 1.父传子 2.子传父 3.中央事件总线 4.this.refsthis.refs this.refsthis.parent 5.provide inject 6.Vuex 1.

qq_29096307的博客 600

vuejs学习与总结——vuex

vuex概述 官方定义:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 状态管理 我们可以将其简单的看成把需要多个组件共享的变量全部存储到一个对象里,然后将这个对象放在顶层的vue实例里,让其他组件可任意使用。 当然可能会有疑问,为什么官方还给我们定义了一个组件呢?我们自己也可以自定义组...

l118 372

vuex和vuejs

前言:在最近学习 Vue.js 的时候,看到国外一篇讲述了如何使用 Vue.js 和 Vuex 来构建一个简单笔记的单页应用的文章。感觉收获挺多,自己在它的例子的基础上进行了一些优化和自定义功能,在这里和大家分享下学习心得。 在这篇教程中我们将通过构建一个笔记应用来学习如何在我们的 Vue 项目中使用 Vuex。我们将大概的过一遍什么是 Vuex.js,在项目中什么时候使用它,和如何构...

weixin_30445169的博客 165

vuejs学习6.1 Vuex,state

VuexVuex概念状态管理管理什么状态单页面状态管理Vuex使用添加插件使用Vuex步骤Vuex状态管理图例 Vuex概念 Vuex是一个专为vuejs应用程序开发的状态管理模式,他采用集中式存储管理,状态可以理解为变量 状态管理 理解为多个变量需要共享,可以创建一个对象看作一个管家,多个组件需要使用时进行获取, 集中式存储管理即一起管理状态(变量) 这个管家对象数据是响应式的 可以自己封装一个对象来实现变量共享,但是无法做到响应式,所以创建了Vuex 管理什么状态 多个组件共享状态:例如登陆状态,用户名

qq_39225271的博客 198

Vuejs(四):Vuex

Vuejs(四):Vuex一:promise1.1 Promise三种状态1.2 Promise all方法二:Vuex2.1 Vuex是什么2.2 单界面的状态管理2.3 多界面状态管理2.4 getters2.5 mutationsmutations传参Mutation提交风格Mutation响应规则Mutation常量类型2.6 Actions 一:promise Promise到底是做什么...

306

vuejs基础之共有数据vuex

文章目录1 vuex简介1.1 安装引入1.1.1 普通网页引入1.1.2 NPM方式安装2 使用方式2.1 实例构造2.2 主要属性2.2.3 五大核心属性介绍2.2.3.1 state2.2.3.2 geeter2.2.3.3 mutation2.2.3.4 action2.2.3.5 modules 1 vuex简介 vuex 是 Vue 配套的 公共数据管理工具,它可以把一些共享数据,保存到 vuex 中,方便整个程序中的任何组件直接获取或修改我们的公共数据; Vuex是为了保存组件之间共享数据而诞

上善若泪 684

Vuejs中Vuex插件的基本使用十九

//store中的index.js // 引入vuex import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) // 创建actions-用于响应组件中的动作 const actions = { // jia(context, value) { // console.log('actions被调用了'); // context.commit('JIA', value) // }, // jian(context, v

qq_50563868的博客 326

vuejs学习——vue+vuex+vue-router项目搭建(三)

前言   vuejs学习——vue+vuex+vue-router项目搭建(一)   vuejs学习——vue+vuex+vue-router项目搭建(二)   为什么用vuex:组件之间的作用域独立,而组件之间经常又需要传递数据,项目比较小的话传递数据还好,越大的项目,涉及的组件通信就越多、越频繁,此时管理起来就会非常累,而且容易出错,这就是 Vuex 的意义所在。它可以将数据置于单独的一...

weixin_30378311的博客 174
上一篇: 【Vue】Vuex状态持久化存储
下一篇: 【Vue3】父子组件双向数据绑定
cannotbecounted
博客等级 码龄7年 101粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值