vuex的基本使用
个人简介
👨💻个人主页: 魔术师
📖学习方向: 主攻前端方向,正逐渐往全栈发展
🚴个人状态: 研发工程师,现效力于政务服务网事业
🇨🇳人生格言: “心有多大,舞台就有多大。”
📚推荐学习: 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js实战 🍒Three.js 🍇鸿蒙开发
🪧使用备注:仅供学习交流 严禁用于商业用途 ,若发现侵权内容请及时联系作者
📤更新进度:持续更新内容
🤙个人名片:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧
vuex的基本使用目录
文章目录
- 个人简介
- vuex的基本使用目录
- 11.1 Vuex 起步
- 1. Vuex 是什么
- 2. 使用 Vuex 的好处
- 3. 在项目中安装和**配置 Vuex**
- 3.1 安装 Vuex 的依赖包
- 3.2 封装 Store 模块
- 3.3 把 Store 实例挂载到 Vue 实例上
- 11.2 State 的基本使用
- 1. 什么是 State
- 2. 组件访问 State 数据
- 2.1 第一种方式
- 2.2 第二种方式
- 2.3 拓展:mapState 辅助函数的原理
- 11.3 Mutation 的基本使用
- 1. 怎样修改 State 中的数据
- 2. Mutation 是什么
- 3. State、组件、Mutation 之间的关系
- 4. Mutation 的使用步骤
- 4.1 载荷(Payload)
- 5. mapMutations 辅助函数
- 11.4 Action 的基本使用
- 1. Mutation 必须是同步函数
- 2. Action 是什么
- 3. 定义 Action 方法
- 4. 调用 Action 方法
- 4.1 第一种方式
- 4.2 第二种方式
- 11.5 Getter 的基本使用
- 1. 组件中计算属性的局限性
- 2. Getter 是什么
- 3. 定义 Getter 方法
- 4. 访问 Getter
- 4.1 第一种方式
- 4.2 第二种方式
- 11.6 Module 的基本使用
- 1. 思考:当前遇到的问题
- 2. Module 是什么
- 3. 定义模块
- 4. 注册模块
- 5. namespaced(命名空间)
- 6. 访问Module
- 6.1 通过模块的注册名称访问模块下的成员
- 6.2 访问命名空间下的 state 数据
- 6.3 访问命名空间下的 mutation 方法
- 6.4 访问命名空间下的 action 和 getter
11.1 Vuex 起步
1. Vuex 是什么
-
Vuex 是 vue 项目中实现大范围数据共享的技术方案。
-
作用:能够方便、高效地实现组件之间的数据共享。
2. 使用 Vuex 的好处
- 数据的存取一步到位,不需层层传递
- 数据的流动非常清晰
- 存储在 Vuex 中的数据都是响应式的
3. 在项目中安装和配置 Vuex
- 步骤:
- 前期的准备:安装 Vuex 的依赖包
- 封装 Store 模块
- 导入并挂载 Store 的实例对象
3.1 安装 Vuex 的依赖包
- 运行如下的 npm 命令,在把 Vuex 安装为项目的依赖包:
3.2 封装 Store 模块
- 主要的实现步骤如下:
- 导入 Vue 和 Vuex 依赖包
- 把 Vuex 安装为 Vue 的插件
- 创建 store 的实例对象
- 向外共享 store 的实例对象
- 在store/index.js文件中
- 导入包 vue 和 vuex
// 这是 vuex 的 Store 模块
// 1. 导入包 vue 和 vuex
import Vue from 'vue'
import Vuex from 'vuex'
- 调用 Vue.use() 函数把 Vuex 安装为插件
// 2. 调用 Vue.use() 函数把 Vuex 安装为插件
Vue.use(Vuex)
- new Vuex.Store() 创建 store 的实例对象
// 3. new Vuex.Store() 创建 store 的实例对象
const store = new Vuex.Store({// 开启 vuex 的严格模式,如果检测到了组件直接修改全局数据,// 则立即终端报错!// vue 官方建议程序员:在项目上线的时候,一定要把 strict: true 去掉,// 因为它会降低 vuex 的性能strict: true,// 全局共享的数据,都存储到 state 这个对象中state: {count: 0},// 专门用来修改全局的数据mutations: {// 1. mutation 必须是函数// 2. 第一个形参,永远都是 stateadd(state, n) {state.count += n}},// 专门处理异步操作// Ajax 请求、延迟器、定时器...actions: {// 定义一个异步自增的函数// action 函数的第一个形参,永远都是 ctx,// ctx 就是 new 出来的 store 实例对象addAsync(ctx, n) {// 1. 延迟1秒setTimeout(() => {// 2. 调用 add 这个 mutation 函数// ctx.commit() 函数的作用,就是调用指定名称的 mutationctx.commit('add', n)}, 1000)}}
})
- 向外导出 store 的实例对象
// 4. 向外导出 store 的实例对象
export default store
3.3 把 Store 实例挂载到 Vue 实例上
- 主要的实现步骤:
- 导入 store 模块
- 挂载 store 实例对象
- 在main.js中
- 导入 store 模块
// 1. 导入 store 模块
import store from '@/store'
- 挂载 store 实例对象
new Vue({render: h => h(App),// 2. 把 store 模块挂载到 Vue 实例上// (挂载完毕之后,每个 .vue 组件中,就可以访问全局共享的数据啦)// store: new出来的store实例// store: storestore
}).$mount('#app')
11.2 State 的基本使用
1. 什么是 State
-
概念:State 本质上就是 Object 对象
-
作用:用来存储全局共享的数据
-
基本用法: store 的实例对象
// 全局共享的数据,都存储到 state 这个对象中state: {count: 0},
2. 组件访问 State 数据
2.1 第一种方式
- 在每个 Vue 组件中,可以通过
this.$store.state.全局数据名称
访问 Store 中的数据。
2.2 第二种方式
- 基于 Vuex 提供的
mapState
辅助函数,可以方便的把 Store 中指定的数据,映射为当前组件的计算属性
- 按需导入一个辅助函数 mapState
import { mapState } from 'vuex'
- 把 Store 中指定的数据,映射为当前组件的计算属性
//mapState(['全局数据的名字', '全局数据的名字'])computed: {// ...obj// ...result...mapState(['count'])},
-
结论:在实际开发中,不要在组件中直接修改全局的数据
-
原因:会导致 vue-devtools 调试工具失效,无法检测到 vuex 中数据的变化
-
通过
this.$store.commit()
就可以调用到指定名称的 mutation 函数 -
通过
this.$store.dispatch('action函数的名字')
函数,
this.$store.commit('add', 1)// 可以调用指定名称的 action 函数this.$store.dispatch('addAsync', 2)
- 在组件使用 State 中数据的两种方式分别是什么?
this.$store.state.数据项的名字
mapState 辅助函数 + computed 计算属性
2.3 拓展:mapState 辅助函数的原理
// 1. 按需导入一个辅助函数 mapState
import { mapState } from 'vuex'//#region 注释
// mapState(['全局数据的名字', '全局数据的名字'])
// 调用结果 {count: ƒ}
// 2. 把 Store 中指定的数据,映射为当前组件的计算属性// const result = mapState(['count'])
// console.log(result)// const obj = {
// // 自定义计算属性,名字叫做 count
// count() {
// // 在计算属性中,必须 return 一个计算的结果
// return this.$store.state.count
// }
// }
//#endregionexport default {name: 'Left',// 计算属性computed: {// ...obj// ...result...mapState(['count'])},
11.3 Mutation 的基本使用
1. 怎样修改 State 中的数据
- 请大家思考:我们能否在组件中直接修改 Vuex 中的数据?
- 结论:能直接修改,但是不推荐!Vuex 官方也禁止我们直接修改!
- 原因:会导致修改来源不明确的问题,不利于调试和后期的维护。
2. Mutation 是什么
- Mutation 本质上是 JavaScript 函数,专门用来变更 Store 中的数据。
-
特点:想要修改 State 中的数据,只能调用 Mutation 方法!
-
好处:能够确保修改来源的唯一性,方便调试和后期维护。
3. State、组件、Mutation 之间的关系
- State:全局存储共享数据的地方
- Vue 组件:使用数据的地方
- Mutation:专门负责修改 State 中的数据
4. Mutation 的使用步骤
- 在 Vuex 中定义 Mutation 方法
- 在组件中调用 Mutation 方法
this.$store.commit('方法名')
// 专门用来修改全局的数据mutations: {// 1. mutation 必须是函数// 2. 第一个形参,永远都是 stateadd(state, n) {state.count += n}},
- 注意:
- mutation 必须是函数
- 第一个形参,永远都是 state
4.1 载荷(Payload)
- Vuex 中的载荷就是参数的意思,通过载荷可以提高 Mutation 方法的通用性。例如:
- 第一个形参,永远都是 state
- 第二形参,Payload来传递调用者传递过来的参数
##### 4.2 提交载荷(Payload)
- 在组件中,可以通过
this.$store.commit()
方法的第二个参数来提交载荷(参数),示例代码如下:
5. mapMutations 辅助函数
- 基于 Vuex 提供的 mapMutations 辅助函数,可以方便的把 Store 中指定的方法,映射为当前组件的 methods:
- mapMutations 辅助函数的用法示例
11.4 Action 的基本使用
1. Mutation 必须是同步函数
- 在项目开发中,为了保证 Store 中状态的每一次变化都是可追踪的
- Vuex 规定: Mutation 必须是同步函数。否则,vue-devtools 将无法正常追踪 Store 中数据的变化,这对大型项目的开发调试是灾难性的!
2. Action 是什么
- Action 本质上是 JavaScript 函数,专门用来处理 Vuex 中的异步操作。
- Action 把异步操作的结果,转交给 Mutation,由 Mutation 负责修改数据源。
3. 定义 Action 方法
4. 调用 Action 方法
4.1 第一种方式
- 在组件中,通过
this.$store.dispatch('xxx')
方法,即可触发指定名称的 Action 方法。示例代码如下:
// 可以调用指定名称的 action 函数this.$store.dispatch('addAsync', 2)
- 在 Action 方法中定义载荷
- 在 Action 方法中,可以通过第二个形参的位置来定义载荷参数。示例代码如下:
- 在 Action 方法中,可以通过第二个形参的位置来定义载荷参数。示例代码如下:
// 定义一个异步自增的函数// action 函数的第一个形参,永远都是 ctx,// ctx 就是 new 出来的 store 实例对象addAsync(ctx, n) {// 1. 延迟1秒setTimeout(() => {// 2. 调用 add 这个 mutation 函数// ctx.commit() 函数的作用,就是调用指定名称的 mutationctx.commit('add', n)}, 1000)}
- 调用 Action 方法时提交载荷
- 通过 this.$store.dispatch() 方法的第二个参数,即可提交载荷。示例代码如下:
4.2 第二种方式
- mapActions 辅助函数
- 基于 Vuex 提供的 mapActions 辅助函数,可以方便的把 Store 中指定的 Action,映射为当前组件的 methods
- mapActions 辅助函数的用法示例
11.5 Getter 的基本使用
1. 组件中计算属性的局限性
- 组件中的计算属性复用性比较低。例如:
- 如果有多个组件需要用到此计算属性,我们需要在多个组件之间复制、粘贴这个函数。
2. Getter 是什么
- Getter 本质上是 JavaScript 函数。
- 作用:它是 Vuex 中的计算属性,当 Store 数据源发生变化时,Getter 的返回值会自动更新。
3. 定义 Getter 方法
4. 访问 Getter
4.1 第一种方式
- 在组件中,可以通过
this.$store.getters.xxx
来访问指定 getter 的值。示例代码如下:
4.2 第二种方式
- 基于 mapGetters 辅助函数,可以把 store 中的 getter 映射为当前组件的计算属性。示例代码如下:
11.6 Module 的基本使用
1. 思考:当前遇到的问题
- 所有的全局数据、方法都集中在了一起,导致 Vuex 的结构混乱,不利于现阶段的开发和后期的维护。
2. Module 是什么
- Vuex 中的 Module 表示按照模块化的开发思想,把不同的数据和方法,按照彼此的关联关系进行封装。
3. 定义模块
- 每个模块都是彼此独立的,都可以拥有自己的 state、mutations、actions、getters 节点:
4. 注册模块
- 注意:
- 拆了模块之后,一定要在 store/index.js 中,对模块进行组装,否则模块不会生效
- 只要拆模块了,必须开启命名空间
namespaced: true,
- 在 vuex 独立的模块中,state 不能是对象,必须是 function
// 计数器的 vuex 模块
export default {// 注意:只要拆模块了,必须开启命名空间namespaced: true,// 在 vuex 独立的模块中,state 不能是对象,必须是 functionstate() {return {// 在这里定义数据count: 0,total: 9}},mutations: {show() {console.log('这是【计数器模块】中的show函数')},add(state, n) {state.count += n}},actions: {addAsync(ctx, n) {setTimeout(() => {ctx.commit('add', n)}, 1000)}}
}
5. namespaced(命名空间)
- namespaced(命名空间)可以解决不同模块之间成员名称冲突的问题。在实际项目开发中,建议为每个 Module 模块都开启命名空间!
- 在定义模块时,只需在模块的根节点中声明 namespaced: true 选项,即可为当前模块开启命名空间:
6. 访问Module
6.1 通过模块的注册名称访问模块下的成员
- 当模块启用了 namespaced: true 选项之后,模块就有了自己的命名空间。
- 此时,模块内的成员需要通过模块的注册名称才可以访问到。示例代码如下:
6.2 访问命名空间下的 state 数据
- 在组件中访问命名空间下的 state 数据时,建议使用 mapState 函数来简化访问的过程。示例代码如下:
6.3 访问命名空间下的 mutation 方法
- 在组件中访问命名空间下的 mutation 方法时,建议使用 mapMutations 函数来简化访问的过程:
6.4 访问命名空间下的 action 和 getter
- 建议使用 mapActions 和 mapGetters 函数来简化访问的过程,示例代码如下:
相关文章:
vuex的基本使用
个人简介 👨💻个人主页: 魔术师 📖学习方向: 主攻前端方向,正逐渐往全栈发展 🚴个人状态: 研发工程师,现效力于政务服务网事业 🇨🇳人生格言&…...
chrome因使用selenium无图模式导致不再加载图片问题解决
因为使用了selenium的无图模式访问chrome的本地用户数据导致正常使用chrome访问网页时图片不加载。现在页面出现验证码,验证码显示不了。 第一步:关闭所有chrome 第二步:找到Perferences文件 文件的目录为:C:\Users\用户名\AppDa…...
并发编程(5)
抛异常时会释放锁。 当线程在 synchronized 块内部抛出异常时,会自动释放对象锁。 public class ExceptionUnlockDemo {private static final Object lock new Object();public static void main(String[] args) {Thread t1 new Thread(() -> {synchronized …...
自己拥有一台服务器可以做哪些事情
上大学时候,买了自己的第一台服务器在HoRain Cloud上,结果没有好好利用,刚工作时候,又买了一台HoRain Cloud服务器,就想着好好利用。 可以搭建一些学习环境,比如说数据库,gitlab什么的 …...
Node.js聊天室开发:从零到上线的完整指南
为让你全面了解Node.js聊天室开发,我会先介绍开发背景与技术栈,再按搭建项目、实现核心功能、部署上线的流程展开,还会分享优化思路。 Node.js聊天室开发实战:从入门到上线 在即时通讯日益普及的今天,基于Node.js搭建…...
Unity 如何使用Timeline预览、播放特效
在使用unity制作和拟合动画时,我们常用到Timeline,前后拖动滑轨,预览动画正放倒放非常方便。如果我们想对特效也进行这个操作,可以使用下文的步骤。 至此,恭喜你又解锁了一个新的技巧。如果我的分享对你有帮助…...
实物工厂零件画图案例(下)
文章目录 总练习模块文章索引气动顶针轴直线轴承座法兰盘平皮带中空传动轴减速机V带轮减速机箱体 简介:点击此处可以下载该文章的案例模型,加上这篇文章总共有七篇文章是用来练习solidworks软件应用与建模思路的,大概有30多个案例模型&#x…...
esp32课设记录(五)整个项目开源github
我把该项目开源到了github:https://github.com/whyovo/ESP32_course_project 以下是readme文档: ESP32 课设 项目概述 这是一个基于ESP32的课设,实现了多种功能模式的集成,包括信息显示、图片展示、MQTT通信、摩尔斯电码处理以…...
力扣每日一题5-19
class Solution { public String triangleType(int[] nums) { Arrays.sort(nums); if (nums[0] nums[1] < nums[2]) return “none”; if (nums[0] nums[1] && nums[1] nums[2]) return “equilateral”; if (nums[0] nums[1] || nums[1] nums[2]) return “is…...
CI/CD 深度实践:灰度发布、监控体系与回滚机制详解
CI/CD 深度实践:灰度发布、监控体系与回滚机制详解 一、引言 在现代软件开发中,持续集成与持续交付(CI/CD)是加快交付速度、提升质量的关键。面对复杂的分布式系统和海量用户,如何安全、快速地发布新版本,…...
【日常笔记】wps如何将值转换成东西南北等风向汉字
在WPS表格中,若要将数值(如角度值)转换成“东、南、西、北”等风向汉字,可通过以下步骤结合自定义函数或条件判断实现: 一、wps如何将值转换 方法一:使用LOOKUP函数(简化公式)&…...
RabbitMQ的简介
三个概念 生产者:生产消息的服务消息代理:消息中间件,如RabbitMQ消费者:获取使用消息的服务 消息队列到达消费者的两种形式 队列(queue):点对点消息通信(point-to-point) 消息进入队…...
中职大数据实验室解决方案分享
第1部分概述 1.1政策背景 2021年3月,教育部印发《职业教育专业目录(2021年)》,共设置19个专业大类、97个专业类、1349个专业。新版《目录》聚焦推进数字化升级改造,构建未来技术技能,优化和加强了5G、人工智能、大数据、云计算、…...
阿里云web端直播(前端部分)
阿里云:Web播放器快速接入_视频点播(VOD)-阿里云帮助中心 import Aliplayer from aliyun-aliplayerimport aliyun-aliplayer/build/skins/default/aliplayer-min.css<div id"J_prismPlayer" style"width: 300px; height: 300px;" />var …...
从虚拟仿真到行业实训再到具身智能--华清远见嵌入式物联网人工智能全链路教学方案
2025年5月23-25日,第63届中国高等教育博览会(高博会)将在长春中铁东北亚国际博览中心举办。作为国内高等教育领域规模大、影响力广的综合性展会,高博会始终聚焦教育科技前沿,吸引全国高校管理者、一线教师、教育科技企…...
阿里云国际站与国内站:局势推进中的多维差异
在当今数字化浪潮席卷全球,云计算成为企业与开发者关键助力的局势下,阿里云作为行业翘楚,其国际站与国内站备受关注。两者虽同宗同源,却在诸多方面存在着显著差异,这些差异犹如隐藏在幕后的齿轮,悄然影响着…...
Docker项目部署深度解析:从基础命令到复杂项目部署
Docker项目部署深度解析:从基础命令到复杂项目部署 注:根据黑马程序员javawebAI视频课程总结: 视频地址 详细讲义地址 一、传统部署困境与Docker破局之道 在传统Linux部署场景中,新手常被三大难题困扰: 命令记忆负…...
reserve学习笔记(花指令)
这是闲来无事逛博客时看到的一篇相关文章,觉得挺有意思。 定义 首先花指令其实就是没有用的指令(垃圾指令),它穿插在真正的代码中,会导致反编译时出现问题,从而会影响我们的静态分析 分类以及讲解 花指…...
docker运行Redis
创建目录 mkdir -p /home/jie/docker/redis/{conf,data,logs}添加权限 chmod -R 777 /home/jie/docker/redis创建配置文件 cat > /home/jie/docker/redis/conf/redis.conf << EOF # 基本配置 bind 0.0.0.0 protected-mode yes port 6379# 安全配置 密码是root require…...
Django 项目中,将所有数据表注册到 Django 后台管理系统
在 Django 项目中,将所有数据表注册到 Django 后台管理系统中需要为每个模型(Model)创建一个对应的 ModelAdmin 类,并在 admin.py 文件中注册这些模型。以下是一个详细的步骤指南: 确保你的模型已定义 首先,确保你已经在 models.py 文件中定义了所有的数据模型。例如:py…...
pyspark测试样例
from pyspark.sql import SparkSession from pyspark.sql.functions import col, lit, concat 创建 SparkSession spark SparkSession.builder.appName(“SparkSQLExample”).getOrCreate() 创建 DataFrame(可以是从 CSV、JSON 等文件读取) data […...
Python学习笔记--使用Django操作mysql
注意:本笔记基于python 3.12,不同版本命令会有些许差别!!! Django 模型 Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。 Django 为这些数据库提供了统一的调…...
HarmonyOS Next应用分层架构下组件封装开发实践
基于鸿蒙应用分层架构的ArkUI组件封装实践 在鸿蒙应用开发中,合理利用 ArkUI 组件进行封装,可以实现代码复用,提升开发效率。本文将结合鸿蒙应用分层架构的特点,详细探讨几个典型的 ArkUI 组件封装场景及其实现方案。 华为鸿蒙应…...
全能视频处理工具介绍说明
软件介绍 本文介绍的软件是FFmpeg小白助手,它是一款视频处理工具。 使用便捷性 这款FFmpeg小白助手无需安装,解压出来就能够直接投入使用。 主要功能概述 该工具主要具备格式转换、文件裁剪、文件压缩、文件合并这四大功能。 格式转换能力 软件支持…...
CSS实现过多的文本进行省略号显示
单行文本省略 .ellipsis {white-space: nowrap; /* 禁止换行 */overflow: hidden; /* 溢出内容隐藏 */text-overflow: ellipsis; /* 溢出部分显示为省略号 */width: 200px; /* 必须设置宽度 */ } 多行文本省略(跨浏览器方案)…...
十三、Hive 行列转换
作者:IvanCodes 日期:2025年5月19日 专栏:Hive教程 在Hive中,数据的形态转换是数据清洗、分析和报表制作中的核心环节。行列转换尤为关键,它能将数据从一种组织形式变为另一种,以适应不同的业务洞察需求。本…...
Django之验证码功能
验证码功能 目录 1.绘制验证码 2.在登录页面里面实现验证码的功能 3.代码展示集合 这篇文章, 内容不是很多, 不过验证码, 是在网页里面比较常见的功能, 所有我们还是要掌握它!!! 一、绘制验证码 绘制验证码, 我们需要用到图像, 然后在…...
代码随想录算法训练营 Day51 图论Ⅱ岛屿问题Ⅰ
图论 题目 99. 岛屿数量 使用 DFS 实现方法 判断岛屿方法 1. 遍历图,若遍历到了陆地 grid[i][j] 1 并且陆地没有被访问,在这个陆地的基础上进行 DFS 方法,或者是 BFS 方法 2. 对陆地进行 DFS 的时候时刻注意以访问的元素添加访问标记 //…...
Python Django 的 ORM 编程思想及使用步骤
目录 一、ORM 编程思想概述 二、Python 中使用 ORM 的主要优势 2.1 简化数据库操作 2.2 提高开发效率 2.3 减少错误 2.4 增强代码的可维护性 2.5 降低耦合性 三、Django 中使用 ORM 的详细步骤 3.1 创建应用模块 3.2 配置数据库信息 3.3 确定数…...
设计一个程序,将所有的小写字母转换为大写字母
汇编语言程序设计实验 实验内容 设计一个程序,将所有的小写字母转换为大写字母,此程序不能改变除字母a~z外的任何其它字符。 实验分析 实现的功能是将所有的小写字母转换为大写字母,此程序不能改变除字母a~z外的任何其它字符。可以分为以…...
Rust 学习笔记:关于错误处理的练习题
Rust 学习笔记:关于错误处理的练习题 Rust 学习笔记:关于错误处理的练习题想看到回溯,需要把哪个环境变量设置为 1?以下哪一项不是使用 panic 的好理由?以下哪一项最能描述为什么 File::open 返回的是 Result 而不是 O…...
使用docker——10分钟内 完成一个高可用的 MongoDB 副本集部署
实验目的 掌握 Docker 容器化部署 MongoDB 副本集 的方法 理解 主从同步、故障转移、数据一致性 等核心机制 熟悉 MongoDB 集群管理命令 和 运维监控技巧 🔧 实验环境 操作系统: Rocky Linux 9 / CentOS 7 软件依赖: Docker 20.10 docker-compose 1.29 硬件要…...
信息化的编程未来发展
信息化与数字化与编程领域与AI的爆炸发展是最近十几年瞠目结舌的事情,列举一下相关词汇: C#、AI、C、Python、.NET、API 、IDE、asp、JavaScript网页端、Visua Studio、VR、Github、OpenGL-webGL-计算机图形学、面向对象 、类库、GIS、GPU计算与显卡、可…...
计算机视觉与深度学习 | EMD-KPCA-LSTM、EMD-LSTM、LSTM回归预测对比,多输入单输出(Matlab完整程序和数据)
以下是针对EMD-KPCA-LSTM、EMD-LSTM和LSTM回归预测对比的完整可运行MATLAB实现。包含数据生成、特征处理、模型构建和性能评估全流程,并提供关键代码注释和注意事项。 完整代码实现(含数据生成) %% 清理环境 clear; clc; close all; warning off;%% 生成模拟数据(正弦波+噪…...
Ollama 如何在显存资源有限的情况下合理分配给不同的服务?
在显存资源有限的情况下,合理分配显存给不同服务需要结合硬件特性、软件配置和模型优化技术。以下是几种有效的方法: 1. 使用 Ollama 自身的资源限制参数 Ollama 提供了一些命令行参数来限制单个模型的资源使用: --ram:限制模型…...
2025-05-19 学习记录--Python-简易用户登录系统 + 计算天数
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、简易用户登录系统 ⭐️ # 用户登录系统 # 用户名、密码、黑名单 users [{name: 小红, password: 123, status:True},{name…...
APP小程序抓包和下游代理
本文仅作学习/技术记录和交流,请勿进行非法活动,否则后果自负! 本文将主要围绕对小程序、APP的抓包方法,同时介绍下游代理。 在本文中我们将用到 Burpsuite、Yakit 和 Proxifier来完成。 小程序&APP抓包 对于小程序或APP抓…...
UE 材质几个输出向量节点
PixelNormalWS...
【八股战神篇】Java多线程高频面试题(JUC)
目录 专栏简介 一 如何创建线程? 延伸 1. 创建 Java 线程的本质 二 说说线程的生命周期? 延伸 1.描述一下线程的生命周期图 2.线程的优先级对线程执行有何影响? 3.如何确保三个线程按照特定顺序执行? 三 并发和并行的区…...
【esp32 mqtt】 连接亚马逊-加密传输信息
文章目录 1 加密文件1.1 服务端证书1.2 客户端CA证书1.3 客户端私钥1.4 三者协同工作的流程 2 亚马逊创建物品3 esp32 程序编写3.1 证书文件读取3.2 MQTT配置3.2.1 配置结构体3.2.2 初始化客户端3.2.3 注册事件3.2.4 开启mqtt3.2.5 示例 3.3 事件回调函数3.2.1 示例 3.4 接收到…...
用于判断主子关系的方法的实现(orm是efcore)
HasParentChildRelationship 方法:主要用于判断给定实体集合中是否存在主子关系,通过检查实体的导航属性来实现。CheckForDependencies 方法:是一个辅助方法,负责具体的依赖关系检查,包括对已访问实体的跟踪࿰…...
《Effective Python》第三章 循环和迭代器——在遍历参数时保持防御性
引言 本文基于《Effective Python: 125 Specific Ways to Write Better Python, 3rd Edition》一书的 Chapter 3: Loops and Iterators 中的 Item 21: Be Defensive when Iterating over Arguments。该条目深入探讨了在 Python 中处理迭代器(iterator)和…...
【python基础知识】Day30 模块和库的导入
学习python 学习python基础语法 处理任务需要用到的库 一、导入官方库的三种手段 1 标准导入:导入整个库 # 方式1:导入整个模块 import math# 导入库后,输出测试 print("方式1:使用 import math") print(f"圆周率…...
leetcode hot100刷题日记——4.盛最多水的容器
解答: 我的思路: class Solution{public:int maxArea(vector<int>& height){//遍历,我暴力找一下,时间超限// int vol0;// for(int i0;i<height.size()-1;i){// for(int ji1;j<height.size();j){// volmax(vol,…...
大二周周练翻译
翻译题 文章目录 翻译题[toc]中国茶道数字经济茶马古道中国父母现状电子商务长城大学生就业一带一路中国结 相遇的意义,是被你改变的那部分的我,代替你永远陪在我身边 点个赞呗! 中国茶道 China is a country with a time-honored civilizat…...
深度学习————模型保存与部署
第一部分:模型保存基础 什么是模型保存? 当你训练好一个深度学习模型后,它会拥有“学习到的参数”,这些参数(权重、偏置等)构成了模型的“知识”。如果不保存这些参数,那么训练好的模型在关闭…...
5G金融互联:迈向未来金融服务的极速与智能新时代
5G金融互联:迈向未来金融服务的极速与智能新时代 大家好,我是Echo_Wish,今天咱们聊聊一个大家都十分关心的话题:5G网络在金融服务中的应用。咱们平时可能觉得5G只是打个电话、刷个视频更流畅了,但在金融服务领域,5G的低延时、大带宽和高可靠性正在悄然改变整个游戏规则。…...
交易所开发:构建功能完备的金融基础设施全流程指南
交易所开发:构建功能完备的金融基础设施全流程指南 ——从技术架构到合规安全的系统性解决方案 一、开发流程:从需求分析到运维优化 开发一款功能完备的交易所需要遵循全生命周期管理理念,涵盖市场定位、技术实现、安全防护和持续迭代四大阶…...
Icecream Video Editor:简单易用的视频编辑软件,轻松打造专业视频
Icecream Video Editor 是一款简单易用的视频编辑软件,专为希望快速、高效编辑视频的用户设计。它提供了丰富的功能,包括视频剪辑、效果应用、音频处理和视频导出,满足用户在不同场景下的需求。无论是视频新手还是有一定基础的创作者…...
论文阅读--Logical quantum processor based on reconfigurable atom arrays
论文主要内容 研究背景与目标: 论文提出了一种基于可重构中性原子阵列的逻辑量子处理器,旨在通过量子纠错(QEC)和逻辑量子比特编码,解决物理量子比特的噪声限制问题。该处理器结合高保真度逻辑门操作、任意连接性和实时…...