自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 C# 中的装箱与拆箱

在性能关键路径中,应像避免内存泄漏一样避免装箱操作。使用泛型、值元组(ValueTuple)和 Span 可有效减少装箱。将值类型转换为 object 或接口类型(隐式转换)非泛型集合(ArrayList, Hashtable)ToString()/GetType() 不会触发装箱。优先使用泛型集合(List, Dictionary)将 object 或接口类型显式转换回原始值类型。重写值类型的 Equals() 避免装箱。在堆(Heap)上分配内存。使用接口约束避免值类型装箱。检查对象是否为有效装箱值。

2025-07-22 09:20:02 34 2

原创 十八、Vue 异步组件与代码分割

这是异步加载的组件

2025-01-10 15:40:39 482 13

原创 十七、Vue 组件通信

在 Vue 中,ref是一个特殊的属性,可以用于在组件模板中标记一个元素或者子组件。通过this.$refs可以访问被标记的元素或子组件实例。

2025-01-09 09:56:19 405 6

原创 十六、Vue 组件

这是一个全局组件

2025-01-08 14:52:34 472 9

原创 十五、Vue 响应接口

在 Vue.js 中,响应式系统是核心特性之一。它能够自动追踪数据的变化,并在数据变化时更新与之绑定的 DOM 元素。这使得开发者可以专注于数据和业务逻辑,而不必手动操作 DOM 来更新视图。例如,当一个 Vue 实例中的数据属性发生变化时,与这个数据属性绑定的 HTML 模板中的内容会自动更新,保持数据和视图的同步。

2025-01-07 10:09:28 584 11

原创 十四、Vue 混入(Mixins)详解

在 Vue.js 中,混入(Mixins)是一种代码复用的方式。它允许你把多个组件中相同的选项(如data、methods、computed等)提取出来,放到一个单独的对象中,然后将这个对象混入到组件中。这样,组件就可以共享混入对象中的选项,避免了代码的重复编写。混入对象是一个普通的 JavaScript 对象,其中可以包含data、methods、computed、mounted等组件选项。data() {return {message: '这是混入中的数据'},methods: {

2025-01-06 15:27:17 476 1

原创 十三、Vue 过渡和动画

在 Vue.js 中,过渡和动画主要用于在元素插入、更新或移除时添加一些视觉效果,从而增强用户体验。过渡效果通常是比较简单的淡入淡出、滑动等效果,而动画则可以更复杂,包括旋转、缩放等各种自定义动画。

2025-01-04 13:38:28 191 2

原创 十二、Vue 路由

在 Vue3 应用程序中,路由(Vue Router)用于实现单页面应用(SPA)的页面导航。它允许用户在不刷新整个页面的情况下,在不同的视图组件之间进行切换,提供了流畅的用户体验。通过管理 URL 和对应的组件,路由系统能够根据用户的操作(如点击链接),动态地加载和显示相应的组件内容。路由组件就是在routes数组中定义的component属性所对应的组件。这些组件可以是简单的视图组件,也可以是包含复杂逻辑的组件。

2025-01-03 10:54:50 678 46

原创 十一、Vue 自定义指令详解

在 Vue.js 中,除了内置指令(如v - model、v - show、v - for等),还允许开发者创建自定义指令。自定义指令是一种扩展 Vue.js 功能的方式,用于对 DOM 元素进行底层的操作,例如直接操作元素的样式、属性或者绑定事件等。全局自定义指令可以在整个 Vue 应用中使用。通过Vue.directive()方法来定义,它接收两个参数:指令名称和指令对象。});在这个例子中,'red - text’是指令名称,指令对象包含一个inserted钩子函数。

2025-01-03 10:38:12 513 3

原创 十、Vue 表单

  在 Vue.js 中,表单是用户输入和交互的重要组成部分。通过表单,用户可以提交数据,如登录信息、调查问卷等。Vue.js 提供了强大的功能来处理表单输入,使得数据的双向绑定和验证变得更加容易。  v - model指令是 Vue.js 表单处理的核心。对于文本输入框(),v - model可以实现数据的双向绑定。例如:  在这个例子中,v - model将输入框中的值与 Vue 实例中的message数据属性进行绑定。当用户在输入框中输入内容时,message的值会实时更新;反之,当message的

2025-01-02 10:00:11 1528 43

原创 九、Vue 事件处理器

在 Vue.js 的交互世界里,事件处理器起着举足轻重的作用,它让页面从静态展示迈向动态交互,精准捕捉用户的每一个操作意图。

2025-01-02 09:33:51 1278 6

原创 C# 线程池的使用

虽然 C# 提供了默认的线程池,但在某些特定情况下,可以根据自己的需求自定义线程池,例如实现更复杂的任务调度策略、对线程进行更精细的管理等。Console.WriteLine($"自定义线程池中的线程Threadi ++) {= null) {try {task();Console . WriteLine($"自定义线程池中的线程 {

2025-01-01 15:30:30 247 1

原创 八、Vue 样式绑定

在这个例子中,v - bind:style(简写成:style)后面跟着一个对象,对象的键是 CSS 属性名(注意当属性名包含连字符,如font - size时,需要用引号括起来),值是 Vue 实例中的数据属性。同样,在 CSS 类绑定中,当用于控制类添加或移除的布尔值等数据属性变化时,Vue.js 会更新元素的class属性,从而实现样式的动态变化。在这里,textStyle是一个计算属性,它根据isHighlighted的值返回不同的样式对象,从而实现了更复杂的样式控制。

2024-12-31 09:58:03 807 5

原创 七、Vue 监听属性

在 Vue.js 中,监听属性(watch)是一个强大的特性,它允许我们观察和响应 Vue 实例数据的变化。当被监听的数据发生改变时,我们可以执行特定的操作,比如更新其他数据、发起网络请求或者进行一些复杂的逻辑判断。

2024-12-31 09:53:06 744 2

原创 六、Vue 计算属性

在 Vue.js 的开发过程中,“computed”(计算属性)这一特性扮演着至关重要的角色,尤其在应对复杂逻辑、优化数据展示与交互方面,展现出了独特的优势。

2024-12-30 09:48:38 1232 16

原创 五、Vue 循环语句

在 Vue.js 的世界里,当我们需要处理重复性的结构并依据数据动态渲染时,v-for 指令就成了不可或缺的工具,它赋予开发者简洁且强大的能力,轻松应对各种列表渲染场景。

2024-12-30 09:34:21 878 1

原创 四、Vue 条件语句

需要注意的是,v-if 指令是真正的条件渲染,它会根据条件决定元素是否创建或者销毁。例如,如果有一个包含大量复杂子组件和绑定数据的组件,使用 v-if 频繁切换其显示隐藏,每次切换时这些子组件的生命周期钩子函数都会重新执行,相关的数据绑定和事件监听等操作也会重新进行一遍,这在性能敏感的应用场景中是需要考虑的因素。v-else-if 指令是在 Vue.js 2.1.0 版本中新增的,它的作用正如其名,是用作 v-if 的 else-if 块,可以链式地多次使用,方便我们构建更复杂的多条件判断场景。

2024-12-27 10:44:59 936 8

原创 三、Vue 模板语法

同时,过滤器也可以接受参数,例如:{{ message | filterA(‘arg1’, arg2) }},其中 message 是第一个参数,‘arg1’ 是传给过滤器的第二个参数,arg2 表达式的值会被求值后作为第三个参数传给过滤器,从而实现更加灵活和强大的文本处理功能。在上述代码中,当用户在输入框中输入内容时,message 的值会自动更新,同时,页面上显示的文本也会实时更新为输入框中的内容,实现了数据的双向流动,方便快捷地处理用户输入数据并实时反馈到界面上。

2024-12-27 10:33:55 1080 1

原创 二、创建第一个VUE项目

确保已经安装了 Node.js 和 npm(一般安装 Node.js 时会自动安装 npm),并且通过 npm install -g @vue/cli 命令全局安装了 Vue CLI(命令行工具)。

2024-12-26 10:25:15 1380 10

原创 一、安装Node.js

Node.js 则不然,遇 I/O 操作时,它利用事件循环机制,先去处理其他任务,待 I/O 完成再回来接续,极大提升资源利用率与程序响应速度,让 JavaScript 得以在服务端施展拳脚,与 PHP、Python、Perl、Ruby 等老牌服务端语言一较高下。安装结束,需校验是否成功。打开命令提示符(cmd),输入 “node -v” 查看 Node.js 版本号,输入 “npm -v” 查看 npm(Node.js 的包管理器)版本号,若都能显示对应版本信息,表明安装无误,已为后续操作做好铺垫。

2024-12-26 10:06:59 2175 1

原创 C# Net Core常用的API集锦(数万字详细总结)

文章目录1、HTTP 相关(System.Net.Http)HttpClientHttpResponseMessage 和 HttpRequestMessage2、文件操作(System.IO)File 类Directory 类3、JSON 处理(System.Text.Json)JsonSerializer4、数据库访问(Microsoft.EntityFrameworkCore)DbContext5、任务和异步编程(System.Threading.Tasks)Task 和 async/await6、配

2024-12-25 19:40:30 842 1

原创 C# 使用Newtonsoft.Json

有OptOut和OptIn两种模式。OptOut是默认值,类中所有公有成员会被序列化,不想被序列化的属性可以用[JsonIgnore]特性标记;OptIn模式下,默认所有成员不会被序列化,只有标有[JsonProperty]的成员才会被序列化。// OptOut模式,忽略IsMarry属性set;set;set;set;set;// OptIn模式,只序列化Name属性。

2024-12-25 10:59:28 796 4

原创 C# 语法糖集锦

在 C# 3.0 及以上版本中,可以使用自动属性来简化属性的定义。自动属性允许您以简洁的方式声明属性,而无需显式定义私有字段和完整的属性访问器(get 和 set)。

2024-12-25 10:08:40 558 1

原创 C# 线程安全集合

C# 的线程安全集合为多线程编程中集合数据的处理提供了可靠保障。通过合理选择和运用 ConcurrentBag、ConcurrentQueue、ConcurrentStack 和 ConcurrentDictionary 等集合类型,能够有效避免多线程并发访问集合时可能产生的问题,提高程序的稳定性和正确性。

2024-12-24 09:58:02 467 10

原创 C# 迭代器

通过本教程的详细介绍,我们深入学习了 C# 迭代器的基本概念、语法结构、高级特性以及实际应用场景。迭代器作为 C# 编程中的一个重要特性,为我们处理各种数据集合提供了极大的便利。它不仅能够使代码更加简洁明了、逻辑清晰,还通过延迟执行等特性有效地优化了内存使用和程序性能。在实际的 C# 项目开发中,熟练掌握和运用迭代器将有助于我们更加高效地处理数据遍历与操作任务,提升程序的质量和开发效率。无论是处理简单的集合数据,还是应对复杂的大型数据集和多维数据结构,迭代器都将是我们手中的一把利器。

2024-12-24 09:52:22 238

原创 C#关键字volatile

在这个例子中,count字段被声明为volatile。在这里,hasData变量被声明为volatile,确保了生产者线程对hasData的修改能够被消费者线程及时看到,并且消费者线程对hasData的修改也能被生产者线程及时看到,从而保证了生产者 - 消费者模式的正确运行。例如,有两个线程,一个线程(线程 A)在不断地更新一个共享变量的值,另一个线程(线程 B)在读取这个共享变量的值。因为它要求对变量的每次访问都直接从主内存中进行,而不是从线程的工作内存(缓存)中进行,这会增加内存访问的开销。

2024-12-23 09:59:45 1749 42

原创 TypeScript 流程控制语句

在 TypeScript 编程中,流程控制语句起着至关重要的作用,它们能让程序根据不同的条件和情况执行相应的逻辑,使代码具备灵活性和智能性。本文将详细介绍 TypeScript 中的各种流程控制语句,包括 if - else 与 else - if 条件判断、switch 语句、for 循环、while 与 do - while 循环以及循环控制语句。

2024-12-23 09:49:22 205 1

原创 TypeScript 与后端开发Node.js

以 Express 框架为例,在 TypeScript 中定义路由时,可以先创建一个路由模块,然后明确路由处理函数的类型。// 定义一个获取用户信息的路由// 这里可以假设从数据库等地方获取用户信息并返回,暂时模拟返回一个固定信息});首先导入了 express 框架以及 express 中的 Request 和 Response 类型定义,它们分别用于描述 HTTP 请求和响应的相关结构和属性类型。

2024-12-20 09:44:09 951 17

原创 TypeScript 与前端框架React

初始化项目目录结构先创建一个项目文件夹,比如 my-custom-react-ts-project,然后在该文件夹下创建 src 文件夹用于存放源代码,public 文件夹存放一些公共资源(如 HTML 模板文件等),还可以创建 tsconfig.json 文件用于配置 TypeScript 编译选项等,例如:安装必要的依赖。

2024-12-20 09:32:20 1761 3

原创 TypeScript 错误处理与调试

当出现缺少属性或多余属性这类错误时,需要回顾对应的接口、类等类型定义。如果是缺少属性,按照类型定义补充完整相应属性即可;若是多余属性,考虑移除不在类型定义内的属性,或者调整类型定义以允许这些额外属性(比如使用可选属性等方式)。

2024-12-19 15:33:40 502 3

原创 TypeScript 与 JavaScript

类型定义文件(.d.ts 文件)在 TypeScript 中起着至关重要的作用。它是一种只包含类型声明的文件,里面没有具体的可执行代码逻辑,主要用于描述 JavaScript 库(或者模块等)中各种变量、函数、类、接口等代码元素的类型信息,使得 TypeScript 编译器能够知晓这些来自 JavaScript 库的元素的类型,进而进行准确的类型检查以及提供代码的智能提示等功能。

2024-12-19 09:53:52 506 4

原创 TypeScript 装饰器

装饰器是 TypeScript 中一种特殊的语法特性,它本质上是一个函数,能够附加到类、类的方法或者类的属性上,用于对它们进行额外的修饰和扩展,在不改变原有类、方法或属性的基本定义和逻辑的基础上,添加一些额外的功能或改变其行为。类装饰器能够在类的定义层面进行操作,比如可以修改类的原型对象,从而为类添加新的方法或者属性,改变类实例化的行为等。通过装饰器的这些功能,能够在不大量修改原有类、方法和属性的基础上,灵活地为代码添加各种额外的逻辑和约束,提升代码的质量和可维护性,使其更加健壮和符合业务场景的需要。

2024-12-19 09:46:56 1725 2

原创 TypeScript 高级类型

交叉类型是 TypeScript 中的一种高级类型机制,它使用 & 符号来表示,能够把多个不同的类型合并在一起,生成一个新的类型,这个新类型会同时具备参与合并的各个类型所定义的属性和方法。在上述代码中,value 变量的类型被定义为 string | number 的联合类型,所以它既可以被赋值为数字类型的值,也可以被赋值为字符串类型的值,只要符合这两种类型之一就行。有时候函数的返回值可能根据不同的执行逻辑产生不同类型的结果,这时也可以用联合类型来定义返回值类型。

2024-12-18 14:39:41 95 1

原创 TypeScript 类型断言与类型守卫

在 TypeScript 中,类型断言是一种方式,它允许开发者手动告知编译器一个值的具体类型。虽然 TypeScript 本身会通过类型推断等机制去确定变量的类型,但在某些情况下,编译器可能无法准确判断,或者开发者基于对代码逻辑的了解,知道某个值实际的类型与编译器推断的不一致,此时就可以使用类型断言来明确指定类型,帮助编译器更好地进行类型检查,避免不必要的编译错误。

2024-12-18 14:28:41 126

原创 TypeScript 模块

而模块有各自独立的作用域,即便不同模块中使用了相同的名称来定义某些元素,它们在各自模块内部是有效的,不会相互干扰,有效地避免了命名冲突问题。模块允许我们按照功能、业务逻辑等不同的维度将代码进行分类整理,例如,把与用户认证相关的代码放在一个模块中,把数据处理相关的代码放在另一个模块中,这样在查找和修改代码时就能更加高效。每个模块都有自己独立的作用域,里面包含了变量、函数、类、接口等各种代码元素,就好像是一个个独立的小世界,模块之间通过特定的规则来进行交互和通信。

2024-12-18 14:19:32 306 1

原创 TypeScript 泛型

定义泛型函数的语法是在函数名后面使用尖括号 来包含泛型类型参数(通常用一个大写字母表示),然后在函数的参数、返回值等相关位置使用这个泛型类型参数。// 正确调用,返回值类型为 number let stringArray : string [ ] = [ "a" , "b" , "c" ];// 正确调用,返回值类型为 stringT// 正确调用,返回值类型为 number// 正确调用,返回值类型为 stringTU。

2024-12-18 14:08:27 284 1

原创 TypeScript 类

使用 class 关键字来定义一个类,在类内部可以定义属性和方法。属性用于存储对象的数据,方法则是定义对象可以执行的操作。// 属性// 方法${this// 属性 name : string;// 方法 sayHello() {} }// 属性 name : string;// 方法 sayHello() {} }${this// 属性 name : string;// 方法 sayHello() {} }// 属性 name : string;

2024-12-18 13:57:36 197 1

原创 TypeScript 接口

/...在面向对象编程中,类可以实现接口,意味着这个类必须按照接口所规定的属性和方法来进行定义,确保类的实例对象符合接口描述的对象形状。// 类中必须实现接口中定义的属性和方法例如,创建一个 Employee 类来实现 Person 接口:typescript在这个 Employee 类中,必须定义 name 和 age 这两个属性,并且类型要与 Person 接口中规定的一致,否则会出现编译错误。

2024-12-18 13:46:29 231 1

原创 TypeScript 函数

在声明函数时,通常需要明确函数的返回值类型(除非函数没有返回值或者返回值类型为 any),这样可以让调用者清楚地知道函数执行后会返回什么样的数据类型,也便于编译器进行类型检查。return `${// 输出 "John Doe"// 输出 "John Doe"${// 输出 "John Doe"// 输出 "John Doe"

2024-12-18 11:16:48 523 3

原创 TypeScript 变量与常量

使用 let 关键字声明变量可以有效避免变量提升带来的意外情况。在 JavaScript 中,使用 var 声明的变量会存在变量提升现象(即变量可以在声明之前被访问,其值为 undefined),而 let 声明的变量则不会出现这种情况,必须先声明再使用,这样使得代码的逻辑更加清晰、可预测。需要注意的是,虽然 const 声明的常量本身不能重新赋值,但如果常量是一个对象或者数组,其内部的属性或元素是可以修改的,因为 const 限制的是变量本身的引用不能改变,而不是对象或数组内部的可变状态。

2024-12-18 11:10:57 546 1

springboot集成常用开发中间件,分库分表,缓存,消息队列,定时器,权限管理等组件

springboot

2025-01-15

yolov11 改进项目测试1

yolov11

2025-01-15

关于Py的干货,使用的是pycharm编译器

pycharm

2025-01-15

pycharm下基于python的人脸识别和活体检测

pycharm

2025-01-14

通过练习python, 了解并学习关于python的操作,使用python进行简单的测试练习

python

2025-01-14

java并发控制工具1

java

2025-01-14

一个纯粹的俄罗斯方块小游戏,基于微信小程序

俄罗斯方块c语言

2025-01-13

通过练习python, 了解并学习关于python的操作,使用python进行简单的测试练习

python与mysql基础

2025-01-13

写小demo的时候,用Android成熟的网络框架有些大炮打蚊子,所以用最简单的方式写了一个网络工具类,注意,这个只是工具类

大炮打蚊子

2025-01-13

快速实现Uniapp websocket实时通讯, 兼容NVUE和VUE,支持厂商通道推送

websocket

2025-01-10

开 箱 即 用 的 单 页 面 javascript 框 架

javascript

2025-01-10

websocket配置,发送数据存到数据库

websocket

2025-01-09

力扣第131题:分割回文串

xtuoj回文串

2025-01-09

利用javascript创建页面,并实现发送网络请求

javascript

2025-01-09

python 一些学习用例

python

2025-01-08

学习springboot的一些示例

springboot

2025-01-08

采用nestjs typeorm VUE开发的一套权限管理系统

vue

2025-01-08

pytorch3D 为使用pytorch进行 3D 计算机视觉研究提供了高效、可重复使用的组件

pytorch

2025-01-07

基于yolov8的检测GUI程序

yolov8

2025-01-07

基于python后端开发框架

python

2025-01-07

开 箱 即 用 的 单 页 面 JavaScript 框 架

开 箱 即 用 的 单 页 面 JavaScript 框 架

2025-02-08

cocoscreator 客户端和服务器,用于验证一些技术实现

cocoscreator 客户端和服务器,用于验证一些技术实现

2025-02-08

通达信 通信协议golang实现的一个版本

通达信 通信协议golang实现的一个版本

2025-02-08

基于Matlab的小工程

基于Matlab的小工程

2025-02-08

Swift 配合 rxSwift 的网络请求库

Swift 配合 rxSwift 的网络请求库

2025-02-08

参加蓝桥杯嵌入式比赛·1

参加蓝桥杯嵌入式比赛·1

2025-02-08

Typescript游戏联机对战解决方案

Typescript游戏联机对战解决方案

2025-02-08

机器学习期末复习笔记11

机器学习期末复习笔记11

2025-02-08

基于 scratch-blocks-code 二次开发的 scratch 网页插件

基于 scratch-blocks-code 二次开发的 scratch 网页插件

2025-02-08

采用opencv图像识别的第七史诗刷商店脚本

采用opencv图像识别的第七史诗刷商店脚本

2025-02-08

西柚英语辅助程序111

greasyfork.org

2025-02-08

为 cherry studio 提供一个API 服务,将cherry studio 作为一个客户端,维护RAG和模型信息,**API服务可以对外提供服务

cherry studio

2025-02-08

pycharm练习项目1

pycharm

2025-02-08

解决国内 github 资源问题 - DNS Remote Host Proxyer (eg. github)

github打不开

2025-01-17

操作符、结构体变量00

结构体

2025-01-17

用于为mysql生成批量测试数据

mysql安装配置教程

2025-01-17

该项目是一个蓝牙微信小程序,用于搜索附近蓝牙设备的uuid信息,与uuid的监听与写入,方便开发蓝牙相关产品

微信小程序开发

2025-01-16

从零开始学习YOLOv11教程代码+注意力模块(SE,SPP,RFB etc)

yolov11

2025-01-16

搭建Anaconda+cuda+cudnn+pytorch+pycharm的笔记

pycharm官网

2025-01-16

测试pytorch benchmark operator test

pytorch

2025-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除