自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C# 局部静态函数,封闭方法中的最佳选择

C# 局部静态函数(Local Static Functions)是一种函数作用域内的嵌套函数,同时可以标记为 static,在 C# 8.0 中引入。这种特性允许我们定义更安全、更高效、更可读的辅助方法,并能在某些业务场景下带来便利和性能优化。局部函数:在另一个函数内定义的嵌套函数,具有访问外部作用域变量的能力。静态局部函数:添加 static 关键字,使得局部函数无法访问外部作用域变量。// 局部变量// 普通局部函数,可以访问外部变量// 静态局部函数,无法访问外部变量。

2024-05-08 13:25:53 965

原创 C# record简洁的代码缓解GC压力

record 是一种特殊的引用类型,它具备不可变性和值语义(value semantics)。record 提供了简洁的声明方式,自动生成常见的样板代码,并实现了一系列便捷特性。它可以继承其他类或实现接口。它还可以应用特性,就像 class 一样。

2024-05-07 23:56:08 878

原创 第Ⅶ章-Ⅱ Pinia详解

Pinia 是 Vue 3 官方推荐的状态管理库,也是 Vuex 的替代方案之一。它更轻量、更现代化,并提供更好的 TypeScript 支持。在 src/stores 目录中创建 store 文件,比如 counter.ts。// 使用 TypeScript 接口定义状态类型// 定义 storecount: 0}),getters: {},actions: {},},});

2024-05-07 11:55:44 404

原创 第Ⅷ章-Ⅱ 组合式API使用

provide 与 inject 是 Vue 3 中用于跨组件树传递数据的 API,适合解决深层嵌套组件的通信问题。Vue Router 支持编程式路由跳转,可以使用 router.push 和 router.replace。setup 语法糖 在 Vue 3.3 中引入,它简化了 setup 函数的使用,使得代码更加简洁易读。Vuex 是 Vue 官方的状态管理库,通常使用 createStore 创建全局 store。Vue 3 引入了组合式 API,使得生命周期钩子以函数形式使用,增加了灵活性。

2024-05-06 21:34:22 694

原创 第Ⅷ章-Ⅰ 组合式API初识

Composition API 是 Vue 3 引入的一种新的编写组件逻辑的方式。它通过将组件的逻辑按功能性分组,而不是按生命周期分组,从而提供更灵活的组件逻辑组合方式。Composition API 的核心是 setup 函数,组件内的逻辑通常在 setup 中定义。

2024-05-06 18:26:30 1238

原创 第Ⅶ章-Ⅰ Vuex详解

Vuex 是一个专为 Vue.js 应用设计的状态管理模式。它允许你将应用中共享的状态提取出来进行集中管理,并以相应的规则保证状态以一种可预测的方式发生变化。State:存储应用状态数据。Getters:从 state 派生出计算属性,类似于组件的 computed 属性。Mutations:同步修改 state 的方法。Actions:包含异步操作的函数,可调用 mutations 以最终修改 state。Modules:将状态和业务逻辑分割到独立模块中。

2024-05-05 22:14:51 470

原创 第VI章-Ⅰ Vue3生命周期探讨

在 Vue 3 中,生命周期钩子定义了组件在其创建、挂载、更新和销毁等过程中会执行的操作。这些钩子允许开发者在组件不同的阶段执行特定的代码逻辑。以下是 Vue 3 生命周期钩子的详细解释,以及如何在选项式 API 和组合式 API 中分别使用它们。选项式 API:生命周期钩子直接在组件对象上定义。组合式 API:生命周期钩子作为函数引入,并在 setup 函数中调用。

2024-05-05 18:31:04 513

原创 第IV章-Ⅱ Vue3中的插槽使用

作用域插槽(Scoped Slots)是 Vue 中一种高级的插槽用法,允许子组件将其内部的数据传递回给使用这些插槽的父组件的插槽内容。这种方式不仅可以让父组件插入 HTML 或组件,还能让父组件访问子组件中定义的数据,非常适合创建高度可定制和复用的组件。在 Vue 3 中,插槽(slots)是一种强大的模式,用于将模板代码从父组件注入到子组件中,使得子组件的内容可以在使用时被自定义。基本插槽允许父组件向子组件传递内容,这些内容在子组件的模板中通过一个简单的 标签进行定义和显示。

2024-05-04 23:08:41 613 1

原创 第V章-Ⅰ Vue3路由vue-router初识

路由组件就像任何其他 Vue 组件,但它们通常与路由路径关联。每个路由规则映射到一个组件。path:'/',

2024-05-04 21:21:25 1276

原创 第IV章-Ⅰ Vue3组件与组件通信

单向数据流(Props):保证了数据的可预测性和管理性,是最常用的通信方式,适用于父子组件。事件通信(Emit):允许子组件向父组件发送消息,是实现子向父通信的标准方法。跨层级通信(Provide/Inject):解决了深层嵌套组件间的通信问题,避免了繁琐的 props 传递。

2024-05-03 14:58:03 1713 2

原创 第III章-ⅠVue3进阶语法

ref 用于创建一个响应式的引用对象,其主要用途是维持一个内部值,并确保 Vue 的响应式系统能够追踪到其变化。区别:Vue 3 中的 computed 使用组合式 API 进行定义,而 Vue 2 中是通过选项 API 的 computed 属性进行定义。区别:Vue 3 中的 watch 使用组合式 API 定义,而 Vue 2 中是通过选项 API 的 watch 属性定义。v-model 修饰符在 Vue 3 和 Vue 2 中的作用一致,但 Vue 3 提供了更灵活的多属性绑定方式。

2024-05-03 13:15:09 1579 1

原创 第Ⅱ章-Ⅰ Vue3基础语法

在这里,v-bind:src 和 v-bind:alt 分别绑定了 imageUrl 和 imageAlt 变量的值。@click 是 v-on:click 的缩写,用于将 click 事件绑定到 handleClick 方法。在这个示例中,{{ message }} 插入了 message 变量的值。在这里,v-if 根据 isVisible 变量来决定是否渲染 div。在这里,v-for 根据 items 列表来循环渲染 li 元素。用于将组件的属性或DOM元素与变量绑定。

2024-05-02 16:53:55 375

原创 第Ⅰ章-VII Typescript主要功能概览

TypeScript2012发布,是一种由微软开发的自由和开源的编程语言,它是 JavaScript 的一个超集,扩展了 JavaScript 的语法。增加了类型检查、类和接口等高级特性,以帮助开发者编写更健壮、可维护的代码。JavaScript 的超集:TypeScript 是 JavaScript 的超集,意味着所有合法的 JavaScript 代码都是合法的 TypeScript 代码。TypeScript 添加了静态类型系统和其他特性,使其更适合大型项目的开发。编译器。

2024-05-02 13:14:28 835

原创 第Ⅰ章-VI 熟练掌握ES6新特性以及盲点

ECMAScript6(简称ES6)是Javascript语言的第六个版本,2015年发布,也称为ESMAScript2015或ES2015。它引入了大量的新特性,新语法和新功能。极大的丰富了JavaScript语言的能力,使其更适合现代化开发。由于 Symbols 是唯一且不可枚举的(不会出现在 for…getAge() {// 输出 30// 只输出 "name"symAge 属性通过 Symbol 添加,不会出现在 for…in 等枚举中,因此可以用于定义私有属性。

2024-05-01 16:22:35 1131

原创 C# 使用模式匹配以及 is 和 as 运算符安全地进行强制转换

这里 switch 语句通过模式匹配直接检查 obj 的类型,并将其转换为对应的类型变量 i 或 s。is 运算符不仅检查 obj 是否是 string 类型,还将其转换为 str 变量,并在条件块中使用。如果 animal 实际上不是 Dog 的实例,则转换会失败,dog 会是 null。obj 是 Dog 的实例,但 Dog 继承自 Animal,所以 is Animal 检查会成功,并将 obj 转换为 animal。is 和 as 运算符在类型检查和转换时,也可以用于泛型类型。

2024-04-30 18:45:16 851

原创 C# 常见的数据结构如何在CRUD时选择

更好的了解数据结构可以在选择用于增删改查操作时,考虑清楚每种数据结构的特性和适用场景可以帮助我们提升性能。以下是 C# 中一些常用数据结构在增删改查(CRUD)操作中的性能特点及应用场景。

2024-04-29 23:24:17 963 1

原创 第Ⅰ章-V package.json文件详解

必须时唯一的。并符合npm对名称的命名规则在发布到npm registry[^1] 时会用作包的标识符[^1] npm用来存储和管理软件包的几种式存储库使用语义版本控制 如1.0.0常用的脚本包括 start(启动项目) test(运行测试) build(构建项目) preview(vite提供的轻量级预览服务器 预览)},vite-tsc 这一步运行TypeScript编译器tsc确保项目在Node.js12以上版本运行。

2024-04-29 21:30:34 1571

原创 第Ⅰ章-IV npm yarn pnpm 包管理器

它们用于帮助开发者管理项目中的依赖关系。

2024-04-28 23:58:47 682

原创 第Ⅰ章-III Vite 创建vue3 项目

因为Vite支持在index.html文件中使用模板语法和插值,这样可以更灵活地配置入口文件。快速的冷启动 利用了原生ES模块的特性,在冷启动时,只需要构建和服务当前需要的模块,而不是整个应用程序。这大大减少了启动时间,使开发者可以更快地惊醒开发和调试。热模块替换(HMR) 可以在不刷新整个页面的情况下实时修改后地模块,提高了开发效率。最佳的安装方式将vite作为项目的开发依赖。npm 卸载全局安装vite 清理缓存。yarn 安装vite 开发依赖项。npm 安装vite 开发依赖项。

2024-04-28 22:42:42 460

原创 第Ⅰ章-Ⅱ Vue3自定义创建项目 项目文件详解

一.自定义创建项目配置二.文件结构publicindex.htmlrobots.txtsrcassetscomonentsrouterstoreviewsApp.vuemain.tstests.gitignoreyarn.lock选择自定义后Babel: es6转es5TypeScript:支持tsProgressive Web App (PWA) Support:渐进式web应用Router:路由Vuex:管理状态CSS Pre-processors:CSS预处理。

2024-04-27 22:47:16 1056

原创 第Ⅰ章-Ⅰ 了解Vue3 创建一个Vue3项目

Vue是一款用于构建用户界面的 JavaScript。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。Vue3 发布于2020年9月18日。

2024-04-27 15:59:39 1048 1

原创 第二章 NODE-RED opc-ua 节点使用

物联网平台中经常会遇到集成Node-RED开源项目,Node-RED是基于Node.js构建的轻量级开源工具,可以低成本的连接设备获取设备数据。

2024-04-26 22:08:46 935

原创 C# Func 和 Action 泛型委托 让我们的代码更优雅

Func 是一种泛型委托,它返回一个值。Func 可以没有或者多个输出参数。Func的最后一个类型是返回类型。Func 返回字符串。Action 不带有返回值。异步编程中Action常用于完成后的回调函数。这使得代码更加简洁,清晰,特别是在需要传递方法作为参数地情况下。特别是对于不同的委托签名,不需要每次都手动声明新的委托。

2024-04-25 23:28:06 202

原创 C#多线程提升效率 并行 Task.WhenAll & Parallel

处理多个并行异步任务的有效方法,能够优化程序的响应能力。2.ParallelParallel.For & Parallel.ForEach 并行循环Parallel.Invoke 可以执行多个由委托定义的方法// 获取结果需要使用线程安全的集合ConcurrentBagCal(i);});Cal(item);});()=>Cal(1)提示:这里不适用异步方法,异步方法会导致线程被挂起,这违背了Parallel的使用初衷,这种做法也会导致线程资源浪费。

2024-04-24 01:16:26 1592

原创 第一章 NODE-RED http 节点使用

物联网平台中经常会遇到集成Node-RED开源项目,Node-RED是基于Node.js构建的轻量级开源工具,可以低成本的连接设备获取设备数据。Http请求节点结合基础节点的简单应用。

2024-04-23 17:14:38 1260 3

原创 理解C#中的Async和Await是如何线程成为时间管理大师

异步编程是为了提高程序的性能和相应性能。在异步编程中,任务呗分解成可以独立执行的子任务,使得程序能够在等待城市间操作完成的同时,继续执行其他任务,而不会阻塞线程或进程。同步编程中程序会按照顺序实行,当遇到耗时操作时(如文件,网络请求,数据库查询等I/O操作),当前线程会阻塞直到操作完成。这种阻塞式得操作会导致程序响应速度速度变慢,并且浪费了资源。

2024-04-22 22:15:58 512

调试OPC UA协议得客户端实用工具 UaExpert

UaExpert 物联网 调试OPC UA协议得客户端实用工具。

2024-04-26

空空如也

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

TA关注的人

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