自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows离线安装OpenSSH.Server

# 网络编程* 前提是应用程序所在的机器在一个网络(同一主机,局域网,互联网)之中* 多个程序(进程)之间能交换数据* 全双共(双向通信),即时,安全的TCP协议,一种用于网络数据传输的协议* IP协议用于机器在网络中的定位## Window下用TCP协议实现网络编程网络应用的两种架构:C/S架构,B/S架构## 通用windows网络编程的步骤...

2025-10-11 22:12:50 343

原创 Vue3 Composition API

更好的代码组织:相关功能代码集中在一起更好的逻辑复用:通过自定义 Hook 实现更好的类型推断:对 TypeScript 支持更友好更小的生产包:Tree-shaking 友好javascript// Options API 方式data() {return {count: 0,},// 基于 searchQuery 过滤列表},methods: {},// 初始化代码// Composition API 方式setup() {// 过滤逻辑})// 初始化代码。

2025-07-30 23:18:44 873 1

原创 Vue3响应式原理

特性refreactive适用类型基本类型/对象类型仅对象/数组类型对象处理自动调用reactive转换直接代理基本类型处理创建RefImpl对象不支持Vue3的响应式系统通过Proxy和Reflect的组合,解决了Vue2中的诸多限制,为开发者提供了更强大灵活的数据响应能力。理解这些底层原理,有助于我们更好地使用和优化Vue3应用。Vue3的响应式系统通过Proxy和Reflect的组合,解决了Vue2中的诸多限制,为开发者提供了更强大灵活的数据响应能力。

2025-07-29 00:23:33 893

原创 Vue3初识及对比

2020年9月18日,Vue.js正式发布了具有里程碑意义的3.0版本,代号"One Piece"(海贼王)。这个版本历时两年多开发,凝聚了开源社区的集体智慧:2600+次提交、30+个RFC(请求修改意见稿)、600+次PR以及99位贡献者的共同努力。Vue3在性能、开发体验和TypeScript支持等方面带来了显著提升。通过本文,我们详细了解了Vue3的工程构建方式、项目结构变化以及核心的Composition API。

2025-07-28 01:01:29 625

原创 Vue项目中的AJAX请求与跨域问题解析

代理服务器充当中间人角色,利用服务端请求不受同源策略限制的特性解决跨域问题。:修改请求头中的host值(true时,host会被设置为target)不符合现代前端开发趋势(Vue/React不推荐操作DOM)主机名相同(localhost/example.com)错误处理不够直观(不会reject HTTP错误状态)浏览器发送实际请求前会先发送OPTIONS预检请求。服务端需要响应预检请求,声明允许的跨域策略。只有预检通过后,浏览器才会发送真正的请求。协议相同(http/https)

2025-07-22 22:02:38 1088

原创 Vue过度与动画效果

自定义过渡效果/* ...其他自定义类名 */

2025-07-21 23:04:20 1232

原创 Vue组件之间通信

methods: {console.log('收到子组件数据:', payload)</script>-- 子组件 Child.vue --><template><button @click="sendData">传递数据</button><script>methods: {this.$emit('custom-event', {data: '子组件数据'})

2025-07-21 22:55:38 344

原创 Vue组件化开发小案例

组件化是Vue.js最核心的开发思想,掌握组件化开发流程和技巧对于构建可维护的大型应用至关重要。本文从一个小案例出发讲解最基本的组件开发步骤,及组件间基本的通信方法.拆分静态组件:按功能划分组件结构设计数据流:确定状态存放位置实现组件通信:props向下,事件向上完善交互细节:处理用户输入和反馈。

2025-07-19 22:02:36 555

原创 Vue配置特性(ref、props、混入、插件与作用域样式)

Vue提供了许多高级特性来增强组件开发的能力。本文将深入解析Vue中的ref属性、props配置、混入(mixin)、插件开发以及scoped样式等核心特性,通过实例演示它们的用法,并给出最佳实践建议。特性适用场景优点注意事项refDOM操作/子组件访问直接访问元素/组件不是响应式的props父子组件通信明确的接口定义单向数据流mixin跨组件复用逻辑代码复用可能造成命名冲突插件全局功能扩展增强Vue核心功能需谨慎设计scoped样式组件私有样式避免样式污染。

2025-07-14 00:11:30 1331

原创 Vue单文件组件与脚手架工程化开发

/ 基本路径// 输出目录// 静态资源目录// 是否启用eslint// 生产环境sourceMap// 开发服务器配置proxy: {'/api': {单一职责原则:每个组件只做一件事明确接口:通过props和events定义清晰的组件API可复用设计:考虑组件的通用性命名一致性:保持文件名、组件名和注册名一致。

2025-07-13 15:21:18 888

原创 Vue组件之非单文件组件

组件化是Vue.js最强大的特性之一,它允许我们将UI拆分为独立可复用的代码片段。本文及后续几篇文章将全面解析Vue组件的各种概念和使用方法,通过丰富的实例演示组件开发的全过程,并提供最佳实践建议。组件是实现应用局部功能的代码和资源的集合,具有以下特点:可复用:可以在多个地方重复使用可组合:可以嵌套其他组件独立:拥有自己的数据、模板和逻辑Vue组件是构建现代Web应用的基石。通过本文我们了解了:组件的基本概念和创建方式组件的命名规范和使用方法组件的嵌套和组织结构组件的核心原理和实现机制。

2025-07-10 23:29:40 764

原创 Vue生命周期

Vue实例从创建到销毁的整个过程被称为Vue的生命周期。了解Vue的生命周期对于开发高质量的Vue应用至关重要。本文将深入解析Vue生命周期的各个阶段,通过实例演示每个钩子函数的使用场景,并提供开发中的最佳实践建议。Vue生命周期是指Vue实例从创建、初始化数据、编译模板、挂载DOM、更新、卸载等一系列过程。在每个阶段,Vue都提供了相应的生命周期钩子函数,允许开发者在特定阶段执行自己的代码。Vue生命周期是Vue实例从创建到销毁的完整过程,理解每个阶段的特点和适用场景对于开发高质量的Vue应用至关重要。

2025-07-06 23:21:35 1110

原创 Vue自定义指令

Vue除了提供丰富的内置指令外,还允许开发者自定义指令,这是Vue框架非常强大的扩展能力之一。通过自定义指令,我们可以直接操作DOM元素,实现一些特殊的功能需求。本文将全面解析Vue自定义指令的用法,通过实例演示各种应用场景,并给出最佳实践建议。当我们需要对普通DOM元素进行底层操作时,就需要用到自定义指令。比如:自动获取焦点防抖/节流操作图片懒加载权限控制表单验证bind:只调用一次,指令第一次绑定到元素时调用inserted:被绑定元素插入父节点时调用update。

2025-07-06 13:35:01 1080

原创 Vue内置指令

Vue.js作为当前最流行的前端框架之一,其内置指令系统是Vue的核心功能。这些指令为开发者提供了强大的数据绑定和DOM操作能力。本文将全面解析Vue的所有内置指令,通过实例演示它们的用法,并给出实用的开发建议。性能优化频繁切换用v-show,不常变化用v-if大数据列表使用v-for时务必加key静态内容使用v-once安全实践谨慎使用v-html,避免XSS攻击用户输入内容必须过滤后再渲染代码可维护性复杂表达式提取到计算属性避免在模板中写复杂逻辑开发体验使用v-cloak避免初始化闪烁。

2025-07-04 23:54:16 908

原创 Vue过滤器

Vue过滤器(Filters)是Vue.js提供的一种对数据进行格式化处理的机制。它可以在数据渲染到页面之前,对数据进行特定的转换或格式化处理,而不改变原始数据。核心特点不改变原始数据适用于简单的数据转换逻辑可以用在插值表达式和v-bind指令中支持链式调用Vue过滤器提供了一种优雅的数据格式化解决方案,特别适合处理简单的数据转换和显示需求。通过本文的介绍,你应该已经掌握了:过滤器的定义和使用方法全局过滤器和局部过滤器的区别过滤器的高级用法和链式调用过滤器与其他方案的对比选择。

2025-07-03 23:19:23 925

原创 Vue表单数据收集

在Vue开发中,表单处理是非常常见的需求。Vue提供了v-model指令来实现表单元素和数据之间的双向绑定,这使得表单数据的收集变得非常简单高效。本文将全面解析Vue中各种表单元素的数据收集方式,并通过一个完整的实战案例进行演示。Vue的v-model指令为表单处理提供了极大的便利,通过本文的详细解析和实战案例,相信您已经掌握了各种表单元素的数据收集方式。在实际开发中,结合表单验证和适当的UI反馈,可以构建出既美观又用户友好的表单界面。希望本文对您的Vue学习之旅有所帮助!

2025-07-02 00:24:09 1170

原创 信创背景下应用软件迁移解析:从政策解读到落地实践方案

信创(信息技术应用创新)是指用我国自主研发的基础软硬件产品实现对国外产品的替代,特别是在CPU、GPU及操作系统等关键领域。其核心目标是解决核心技术"卡脖子"问题,构建安全可控的IT底层架构和标准。

2025-06-29 23:12:32 1030

原创 Vue列表渲染与数据监测原理

v-for是Vue列表渲染的核心指令,支持多种数据类型key的正确使用对列表渲染性能和正确性至关重要计算属性是实现列表过滤和排序的理想选择Vue的数据监测机制基于getter/setter和数组方法重写对于动态添加的属性,需要使用Vue.set保证响应式理解这些核心概念,能够帮助开发者编写更高效、更可靠的Vue应用程序。在实际项目中,合理应用这些知识可以避免许多常见的性能问题和bug。

2025-06-29 20:16:09 882

原创 Vue样式绑定与条件渲染详

通过这个综合示例,我们可以看到Vue的样式绑定和条件渲染如何协同工作,创建出动态、响应式的用户界面。在Vue中,我们可以通过多种方式动态地绑定样式,让界面根据数据状态变化而自动更新样式。对象写法的键是class名,值是布尔值,决定是否应用该class。:要绑定的样式的个数确定,名字也确定,但要动态决定是否使用。是惰性的,初始条件为假时什么也不做,直到条件变为真才会渲染。可以管理可复用的元素,避免Vue高效复用元素带来的问题。:要绑定的样式的个数不确定,名字也不确定。可以通过修改对象的属性值来动态切换样式。

2025-06-26 23:10:47 588

原创 Vue计算属性与监视属性

计算属性是Vue中一个非常实用的特性,它允许我们基于已有的数据属性计算出新的属性值。简单来说,计算属性就是通过data中已定义的属性计算得来的属性。原理:Vue底层使用方法提供的getter和setter来实现计算属性。监视属性允许我们观察和响应Vue实例上的数据变动。当被监视的属性发生变化时,指定的回调函数会自动调用。计算属性和监视属性是Vue中响应式编程的两个重要工具。计算属性适合声明式的派生数据,而监视属性适合命令式的响应数据变化。

2025-06-25 22:04:08 861 2

原创 Vue按键事件

/ 在main.js或入口文件中f1: 112,f2: 113,// 添加更多自定义按键...

2025-06-23 23:32:28 808

原创 Vue.js数据代理与事件处理全解析:从原理到实践

在Vue.js开发中,数据代理机制和事件处理是构建交互式应用的核心基础。本文将深入剖析Vue的数据代理实现原理,全面讲解事件处理的各项特性和使用技巧,帮助开发者掌握这些关键概念,提升开发效率和代码质量。

2025-06-22 23:19:13 711

原创 Vue.js核心概念与实践指南:从实例绑定到数据代理

仅适用于表单元素:`<input>`, `<select>`, `<textarea>`等。| v-model | 双向绑定 | `v-model="inputText"` || v-for | 列表渲染 | `v-for="item in items"` |- 简化模板访问:直接使用`{{name}}`而非`{{_data.name}}`| v-if | 条件渲染 | `v-if="isVisible"` || v-bind | 属性绑定 | `:href="url"` |// 更灵活的挂载时机。

2025-06-21 22:51:27 292

原创 Vue框架深度解析:从Vue2到Vue3的技术演进与实践指南

对于Vue初学者,建议按照以下路径渐进学习:掌握Vue2核心概念(本文内容)熟悉单文件组件开发学习Vue Router和Vuex了解Vue3的新特性实践项目迁移策略在接下来的系列文章中,我们将深入探讨Vue的组件系统、状态管理和性能优化等高级主题。无论您选择从Vue2开始还是直接学习Vue3,理解这些核心概念都将为您的Vue开发生涯奠定坚实基础。

2025-06-20 21:04:52 1160

原创 C++/Opengl编程实践

图形编程是以来显卡的,其程序分为两部分,一部分是用C++/java语言编写运行在CPU上的,另一部分是使用着色器语言(GLSL)编写,运行在GPU上的。

2024-11-02 21:50:03 806

原创 C++缺陷识别与调试

C++语言编写的程序的缺陷大部分继承于C语言本身的语法使用缺陷,同时有一部分也来源于C++本身语法的缺陷。(但我理解规则是固定的,缺陷来源于你如何使用,而非设计)尽量让缺陷暴露在编译阶段,通过不断完善的编译器来发现缺陷。避免使用编译器的隐式类型转换,建议使用explicit修饰带一个入参的构造函数,并避免使用转换赋值运算符号使用类型作为入参,在某些场景下尽量不要将enum当作整型数使用定义合适的类来表示特定场景下的数据类型,而不是使用double类型,但指挥使用到0~10000范围的数。

2024-10-27 21:54:58 408

原创 Go语言初识

Go语言是为了取代C和java的地位,既要保留C的简洁,也追求java的规模化开发并行及分布式的支持,使得开发多核及多机器集群程序如同单机一样简单Go语言从语言级别支持协程(goroutine, 轻量级线程),Go语言标准库提供的所有系统调用(同步IO、本地文件读写等)都会出让CPU给其他goroutine;执行体之间的通信,包括同步与互斥、消息传递Go语言支持goroutine之间的互斥与同步Go语言内置消息队列,称为通道(channel),支持执行体之间的通信。

2024-10-27 21:52:54 417

原创 LearnOpenGL系列一

最近工作中遇到了一些可视化渲染相关的问题,比如多线程下opegl渲染上下文如何共用、GPU与CPU内存数据交换性能如何提升、仿射变换卡顿以及threejs中矩阵变换、透明度叠加、深度测试等,虽然针对单个问题在网上能查到很多解决方案,也解决了大部分问题,但内心始终感觉缺点啥,缺乏可视化相关的系统性的专业知识支撑,遇到这些问题时,内心着实有点慌,因此,下定决心要把opengl相关的基础知识系统性的过一遍,在此留下记录,便于后期查阅。

2024-04-20 23:43:41 804

原创 C++线程池理解

C++线程池的基本概念及简单实现

2023-03-18 21:09:39 1278

原创 OpenMP并行计算

Openmp基本知识

2023-03-13 20:42:26 568

原创 医疗领域点滴记录

医生替你做决策,医疗消费你做不了主,信息严重不对称,医生既是医疗服务的提供方也是需求方,供需都在医生一手。一旦市场化,患者都是待宰的鸡,消费者和市场不存在博弈。1. 医疗领域是最市场失灵的。...

2022-08-07 20:38:45 257

原创 进程与线程

新增描述

2021-07-04 16:25:09 180

原创 C++ Set/Get使用

### C++——get/setC++中的私有字段取值、赋值时,一般是提供Get,Set函数来实现,具体使用可分以下场景: 大量私有字段,不需校验或加锁等额外操作的,仅对该字段做单纯的取值、赋值操作,建议直接将字段定义为public; class Test{ public: int age; std::string name; int sex; std::string intrest; double h...

2021-04-25 22:00:45 7787

原创 Unity概览

Unity概览Unity Technologies公司开发的用于轻松创建游戏和三维互动内容的开发工具,是一款优秀的专业游戏引擎。2000年推出 统一语言 跨平台可制作2D和3D游戏虚拟现实:通过各种输入设备与虚拟环境中的失误进行交互 如移动端头显设备,外接式头戴设备(htc),一体式头戴设备, XBox One + Kinect, zSpaceAR 通过电脑技术,将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到同一个画面或空间同时存在unity定位一款游戏引擎框架包

2021-03-21 19:30:31 255

原创 c++ 进程间通信实例

1. windows下共享内存实现进程间通信发送数据进程#include <iostream>#include <Windows.h>using namespace std;#define BUF_SIZE 1024HANDLE H_Mutex = NULL;HANDLE H_Event = NULL;int main(){ // 创建共享文件句柄 HANDLE shareFileHandle = CreateFileMapping(INVALID_HANDL

2021-03-06 21:19:08 936

原创 TinyXML2

记录xml文件的读取,解析与保存tinyxml2源码如下链接tinyxml2xml文件结构 // xml文件的生成 //------------ //声明要创建的xml文件 //------------ tinyxml2::XMLDocument xml; tinyxml2::XMLDeclaration* declaration = xml.NewDeclaration(); xml.InsertFirstChild(declaration); //------------ //

2021-02-26 21:33:58 493

原创 C++11多线程

C++11多线程C++11引入了std::thread线程库,可以跨平台使用,注意在linux上使用时,需要手动加入链接库pthread.线程是CPU执行的最小单元,它是线性独立执行一段机器指令的承载空间单核CPU下使用多线程,并不能提升性能,多核CPU下使用多线程可提高硬件性能的利用率需要根据实际业务来划分多线程,比如后台运算,加载视频流等 1. 每个进程默认有一个主线程; 2. std::thread构造 std::thread t(func) 3. std::th

2021-02-21 15:01:05 220

原创 iMSTK学习笔记

以下内容来源于iMSTK官网https://www.imstk.org/iMSTKiMSTK是一套交互式医学仿真工具包,它的核心库是用C++语言编写,代码开源免费,可以帮助快速进行交互式多模式外科手术仿真的原型制作,该工具包具有以下特点:高度模块化和简单的API以扩展(可使用第三方库进行扩展)开源协议为Apach2.0, 可免费修改源码代码框架iMstkd的仿真工作流如下图,对每一帧仿真图像都需要首先根据动态模型计算出力向量及雅克比矩阵传递给主程序,同时,碰撞检测模块会根据配置文件定义的参

2021-02-06 22:29:24 1155 1

原创 c++ 网络编程实践(第二篇)

网络通信之粘包和拆包在解释粘包与拆包的概念前,先大致解释下网络传输过程的缓冲模型,示意图如下:对照上图,发送端的缓冲区A是开发者在堆或栈上分配的缓冲区,并将该缓冲区的首地址作为send函数的入参,发送缓冲区B则是通信框架内部已经分配好的一段缓冲区,其大小可通过socket来设置。用户通过send发送的数据或先存储到发送缓冲区B来存储,通信框架根据实际的网络状况来决定每次发送多少字节到网络传输通道中。同样的,网络传输通道到达接收端的数据,会先存储到接收缓冲区B(通信框架维护),开发者通过recv函数从接

2021-01-31 11:40:30 218

原创 C++ 网络编程实践(第一篇)

以下内容来源于B站视频https://www.bilibili.com/video/BV1j4411S7jg?p=18学习资源仅将学习笔记记录如下供以后查阅及大家分享,欢迎讨论与批评指正网络通信基础1. tcp通信的客户端和服务端建立客户端的步骤1. 建立通信套接字socket -- 类似读写文件中的File*2. 连接服务端 -- fopen 打开文件3. 向服务端发送数据 -- fwrite4. 接收服务端数据 -- fread5. 关闭socket

2021-01-17 17:56:12 423

空空如也

空空如也

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

TA关注的人

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