<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ScottePerk的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/ScottePerk</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; ScottePerk]]></copyright><item><title><![CDATA[独立个人开发心得分享：我开发的第一款应用MonkeyReader——最好用的Epub电子书阅读器]]></title><link>https://blog.csdn.net/ScottePerk/article/details/161616768</link><guid>https://blog.csdn.net/ScottePerk/article/details/161616768</guid><author>ScottePerk</author><pubDate>Fri, 31 Jul 2026 11:29:26 +0800</pubDate><description><![CDATA[本文记录了一位拥有近1.8万粉丝的博主开发Windows平台EPUB阅读器"MonkeyReader"的全过程。作者基于对阅读的热爱和现有阅读器体验不佳的现状，耗时2-3个月开发了这款支持多种格式、界面清爽的免费软件。开发过程中遇到了翻页效果实现、PDF支持、笔记功能等技术难题，以及服务器部署、测试等全栈挑战。文章特别指出，相比技术开发，软件运营推广才是最大难点，即使产品优秀也面临用户获取困境。尽管下载量不高，但这次独立开发经历让作者获得了宝贵的成就感和对个人开发真实状况的认知。软件已在微软商店和官网(be]]></description><category></category></item><item><title><![CDATA[全网最全面的关闭hyper-v功能指南（原理和详细步骤）]]></title><link>https://blog.csdn.net/ScottePerk/article/details/153618978</link><guid>https://blog.csdn.net/ScottePerk/article/details/153618978</guid><author>ScottePerk</author><pubDate>Mon, 20 Oct 2025 15:05:19 +0800</pubDate><description><![CDATA[本文探讨了在Windows系统上运行安卓模拟器时遇到的Hyper-V冲突问题。作者发现不同电脑型号对Hyper-V的兼容性存在差异，并详细解释了Hyper-V的底层原理及其与VMware等虚拟化技术的区别。文中测试了五种关闭Hyper-V的方法，包括系统组件禁用、命令提示符操作、BIOS设置等，但均未奏效。最终通过雷电模拟器提供的专用工具成功解决问题。本文为遇到类似问题的用户提供了实用参考，特别指出某些品牌电脑(如华硕天选5 Pro锐龙版)可能存在特殊兼容性问题。]]></description><category></category></item><item><title><![CDATA[前端安全之XSS和CSRF]]></title><link>https://blog.csdn.net/ScottePerk/article/details/150640631</link><guid>https://blog.csdn.net/ScottePerk/article/details/150640631</guid><author>ScottePerk</author><pubDate>Sat, 23 Aug 2025 16:25:10 +0800</pubDate><description><![CDATA[本文介绍了前端开发中两种常见的安全问题：XSS和CSRF。XSS攻击通过注入恶意代码篡改网页内容，防范措施包括使用Vue框架的防转义语法、避免v-html标签、采用DomPurify库等。CSRF攻击利用Cookie信息伪造用户请求，可通过CSRF token、SameSite Cookie属性、二次验证等方式防范。文章强调，虽然Cookie存在安全风险，但通过合理设置仍可安全使用，同时指出localStorage也存在XSS风险。建议开发者根据实际需求选择合适的安全方案，特别在金融等敏感领域更需重视这些安]]></description><category></category></item><item><title><![CDATA[css之再谈浮动定位float（深入理解篇）]]></title><link>https://blog.csdn.net/ScottePerk/article/details/150217337</link><guid>https://blog.csdn.net/ScottePerk/article/details/150217337</guid><author>ScottePerk</author><pubDate>Tue, 12 Aug 2025 15:59:30 +0800</pubDate><description><![CDATA[本文深入探讨了CSS中float属性的特殊行为及其存在的问题。作者指出float已成为&quot;前端僵尸属性&quot;，虽设计初衷是实现图文环绕，但在实际使用中会产生诸多不合逻辑的现象。通过三种典型情况分析，揭示了float&quot;脱离文档流但仍影响布局&quot;的特性，并提出&quot;左浮占空间，右浮不占空间&quot;的规律来解释这些现象。文章还探讨了高度坍塌问题及clear属性的解决方案，强调理解这些案例就能掌握float的核心机制。这些分析为后续理解BFC打下了基础。]]></description><category></category></item><item><title><![CDATA[comfyui教程之官方例子：lora例子（包含多lora）]]></title><link>https://blog.csdn.net/ScottePerk/article/details/149815777</link><guid>https://blog.csdn.net/ScottePerk/article/details/149815777</guid><author>ScottePerk</author><pubDate>Fri, 01 Aug 2025 00:19:42 +0800</pubDate><description><![CDATA[本文介绍了多LoRA模型的使用方法，重点展示了Dreamshaper底模结合Blindbox和Moxin两个LoRA的效果。Dreamshaper支持写实3D与动漫风格，Blindbox呈现盲盒手办风格，Moxin则生成国风3D手办效果。实验表明，同时使用两个LoRA（强度0.5-0.75）能有效融合两种风格，而单一使用或过高强度会削弱特性表现。选择适配的底模对最终效果至关重要，Dreamshaper作为底模能很好地呈现目标画风。工作流程图示说明多LoRA与单LoRA操作相同，仅需调整提示词和强度参数。]]></description><category></category></item><item><title><![CDATA[comfyui从入门到精通二：提示词规则详解]]></title><link>https://blog.csdn.net/ScottePerk/article/details/149048439</link><guid>https://blog.csdn.net/ScottePerk/article/details/149048439</guid><author>ScottePerk</author><pubDate>Tue, 01 Jul 2025 20:09:11 +0800</pubDate><description><![CDATA[《AI绘画提示词使用全指南》摘要： 本文系统解析AI绘画提示词的核心规则与实用技巧。关键点包括：1) 空格与下划线的本质差异，webui会自动转换但comfyui保留原格式；2) 数字与单词表达（如1girl/one girl）会导致风格变化；3) 三种权重控制方式（数值标注、括号嵌套、位置效应），其中数值标注最直观有效；4) 位置衰减公式揭示提示词排序对效果的影响权重。同时指出当前AI绘画仍存在角色一致性等更复杂的技术瓶颈。全文通过多组对比实验，为创作者提供从基础语法到高阶控制的完整解决方案。]]></description><category></category></item><item><title><![CDATA[comfyui从入门到精通一：下载安装和目录结构详解]]></title><link>https://blog.csdn.net/ScottePerk/article/details/149044079</link><guid>https://blog.csdn.net/ScottePerk/article/details/149044079</guid><author>ScottePerk</author><pubDate>Tue, 01 Jul 2025 15:19:22 +0800</pubDate><description><![CDATA[ComfyUI入门指南摘要 本文介绍了AI绘画工具ComfyUI的安装与基础使用方法。作者基于4060 8G显卡笔记本环境，详细讲解了ComfyUI便携版的下载、安装步骤和目录结构说明。重点内容包括：推荐便携版而非桌面版或手动安装；强调运行目录不能包含中文；如何解决默认案例报错问题（需下载指定模型放入checkpoints目录）；以及通过浏览工作流功能查看官方示例。文章还对比了不同运行脚本的差异，为入门用户提供了完整的安装配置指导。作者后续将分享更多ComfyUI使用技巧和性能优化经验。]]></description><category></category></item><item><title><![CDATA[TypeScript的鸭子类型，结构化类型系统‌（Structural Type System）和多余类型检测（Excess Property Checks）解惑]]></title><link>https://blog.csdn.net/ScottePerk/article/details/148028996</link><guid>https://blog.csdn.net/ScottePerk/article/details/148028996</guid><author>ScottePerk</author><pubDate>Sat, 17 May 2025 16:59:50 +0800</pubDate><description><![CDATA[你只需要知道，在ts里面，声明一个对象类型的时候，他的含义并不是一个确定的对象类型，而是可以有额外的属性，并且定义的对象的属性只能多不能少。也就是包含这个对象，或者说必须是这个对象的子类。]]></description><category></category></item><item><title><![CDATA[vue3+ts+pinia+vite实战后台管理系统一（框架搭建和配置）]]></title><link>https://blog.csdn.net/ScottePerk/article/details/134791831</link><guid>https://blog.csdn.net/ScottePerk/article/details/134791831</guid><author>ScottePerk</author><pubDate>Mon, 28 Apr 2025 17:15:11 +0800</pubDate><description><![CDATA[如果你的组件是Home.vue,About.vue这样的名字，那么会报multi-word的错误。意思就是不能这样取名字。把下面的自定义规则加上就可以关闭这个检查。rules:{主要讲解了框架搭建和配置。下一篇介绍登录模块的搭建。]]></description><category></category></item><item><title><![CDATA[关于vscode运行nodejs或者js代码端口被占用的问题解决]]></title><link>https://blog.csdn.net/ScottePerk/article/details/147256308</link><guid>https://blog.csdn.net/ScottePerk/article/details/147256308</guid><author>ScottePerk</author><pubDate>Tue, 15 Apr 2025 19:13:57 +0800</pubDate><description><![CDATA[通过Run Code菜单运行.js文件。第一次是没有问题的，但有时候修改代码或者因为别的原因再次运行就会报端口占用。我把vscode重启也不能解决问题。想了半天，于是我想知道是谁占用了8888端口？我们可以知道，直接通过Run code的方式居然会启动一个独立的node进程。百度了一下，可以通过下面的命令获取到占用8888端口的应用的pid。最后通过pid在任务管理器里面发现占用的程序居然是node.exe。]]></description><category></category></item><item><title><![CDATA[element-plus文档解析之Layout布局(el-row,el-col)]]></title><link>https://blog.csdn.net/ScottePerk/article/details/146162121</link><guid>https://blog.csdn.net/ScottePerk/article/details/146162121</guid><author>ScottePerk</author><pubDate>Wed, 12 Mar 2025 20:05:12 +0800</pubDate><description><![CDATA[这是element-plus提供的响应式布局组件。可以非常方便的实现响应式布局以及快速按比例分块。例如实现下面的效果：第一行：宽度占100%第二行：宽度1：1第三行：1：1：1第四行：1：1：1：1第五行：1：1：1：1：1：1这里文档给的例子都是等比例平分。实际上，你想怎么分都可以。例如1：2：1。]]></description><category></category></item><item><title><![CDATA[前端适配探索之关于2k，4k分辨率的适配的思考。]]></title><link>https://blog.csdn.net/ScottePerk/article/details/146073812</link><guid>https://blog.csdn.net/ScottePerk/article/details/146073812</guid><author>ScottePerk</author><pubDate>Sat, 08 Mar 2025 16:24:59 +0800</pubDate><description><![CDATA[本篇文章是为了更好的理解屏幕适配。因为这样的问题如果不思考的话，在实际开发的时候非常的让人困惑。]]></description><category></category></item><item><title><![CDATA[js判断内容是否为空（包括数组，对象，字符串）]]></title><link>https://blog.csdn.net/ScottePerk/article/details/145879110</link><guid>https://blog.csdn.net/ScottePerk/article/details/145879110</guid><author>ScottePerk</author><pubDate>Wed, 26 Feb 2025 16:16:36 +0800</pubDate><description><![CDATA[这是一个非常常用的功能。主要有两种实现方式，一种是实现一个统一的isEmpty方法用于处理各种类型的判空。另一种则是提供单独的方法判断各类型是否为空。例如isEmptyString,isEmptyObject,isEmptyArray等。]]></description><category></category></item><item><title><![CDATA[JavaScript的slice和splice方法]]></title><link>https://blog.csdn.net/ScottePerk/article/details/145868670</link><guid>https://blog.csdn.net/ScottePerk/article/details/145868670</guid><author>ScottePerk</author><pubDate>Wed, 26 Feb 2025 09:55:30 +0800</pubDate><description><![CDATA[slice用于。]]></description><category></category></item><item><title><![CDATA[JavaScript基础之深拷贝浅拷贝]]></title><link>https://blog.csdn.net/ScottePerk/article/details/145751364</link><guid>https://blog.csdn.net/ScottePerk/article/details/145751364</guid><author>ScottePerk</author><pubDate>Thu, 20 Feb 2025 17:05:16 +0800</pubDate><description><![CDATA[创建一个新的数组或者对象，并将原数组或者对象的顶层属性逐一复制到新创建的对象或者数组中。对于基本数据类型，直接复制其值。对于引用类型（对象，数组，方法），仅仅复制该引用。// 浅拷贝示例//3copy.a = 4;//1在这个示例中，我们修改了拷贝的新对象的nested对象的b属性的值，原始对象的nested对象的b属性值也跟着发生了改变。而修改拷贝对象属性a的值，原始对象的属性a的值没有跟着改变。1.使用Object.assign方法这是js给我们提供的浅拷贝方法。]]></description><category></category></item><item><title><![CDATA[关于事件捕获和事件冒泡的理解]]></title><link>https://blog.csdn.net/ScottePerk/article/details/145308940</link><guid>https://blog.csdn.net/ScottePerk/article/details/145308940</guid><author>ScottePerk</author><pubDate>Thu, 23 Jan 2025 20:01:58 +0800</pubDate><description><![CDATA[我一直对事件捕获和事件冒泡是挺困惑的，好像理解了，但又感觉哪里不对。这篇文章打算深入探讨一些细节性的问题，更好的理解事件捕获和事件冒泡。]]></description><category></category></item><item><title><![CDATA[create-react-app 创建react项目报错 ERESOLVE unable to resolve dependency tree]]></title><link>https://blog.csdn.net/ScottePerk/article/details/144676357</link><guid>https://blog.csdn.net/ScottePerk/article/details/144676357</guid><author>ScottePerk</author><pubDate>Mon, 23 Dec 2024 21:17:12 +0800</pubDate><description><![CDATA[实际上， 你通过npm创建的项目虽然报错了，但实际上是可以用的，你可以通过npm start跑起来，但会报找不到web-vitals的错误，你可以手动安装web-vitals，或者把web-vitals相关代码删除。同时你可以手动设置react和react-dom的版本，react-scripts的版本是不可以设置的，如果设置为4.0.3会报错跑不起来，只能用最新的5.0.1。这个非常的蛋疼，意思是testing-library这个库的版本需要react18，但现在安装的是react19。]]></description><category></category></item><item><title><![CDATA[React基础知识四 Hooks]]></title><link>https://blog.csdn.net/ScottePerk/article/details/144206203</link><guid>https://blog.csdn.net/ScottePerk/article/details/144206203</guid><author>ScottePerk</author><pubDate>Fri, 06 Dec 2024 09:45:31 +0800</pubDate><description><![CDATA[hooks是react 16.8（2019年）出的新特性。react有两种形式来创建组件——类式和函数式。在hooks之前类式组件就是react最主流的编程方式。这个时候，函数式组件是非常鸡肋的，几乎没什么用。因为函数式组件不能保存数据状态，所以只能用于一些简单的展示的场景，传什么数据就展示什么数据（因为只有props是可以用的并且函数组件是没有生命周期的。但因为函数式编程的思想在前端是普遍流行和推崇的。我猜想react团队在设计函数式组件的时候肯定已经想到了这个问题。]]></description><category></category></item><item><title><![CDATA[React基础知识三 router路由全指南]]></title><link>https://blog.csdn.net/ScottePerk/article/details/144159126</link><guid>https://blog.csdn.net/ScottePerk/article/details/144159126</guid><author>ScottePerk</author><pubDate>Tue, 03 Dec 2024 11:12:15 +0800</pubDate><description><![CDATA[这个自定义的高阶组件，内部也是使用了useNavigate，所以是router6才可以这么用。router5是自带一个withRouter函数的，只是这个函数在router6被移除了。我们自己实现的这个只是叫withRouter这个名字，内部实现是不一样的。因为useNavigate只能在函数组件里面使用，我们怎么在类组件里面也能用呢？就是使用高阶函数，中间套一个函数组件，并将navigate 放到props里面，经过这个骚操作，我们就可以在类组件的props里面获取到navigate了。]]></description><category></category></item><item><title><![CDATA[React基础知识一]]></title><link>https://blog.csdn.net/ScottePerk/article/details/131620742</link><guid>https://blog.csdn.net/ScottePerk/article/details/131620742</guid><author>ScottePerk</author><pubDate>Thu, 21 Nov 2024 08:46:09 +0800</pubDate><description><![CDATA[写的东西太多了，照成csdn文档编辑器都开始卡顿了，所以分篇写。需要安装下面三个包。
1.1 在html中引入CND
在html中使用react是一种简便的方式。
地址为：https://zh-hans.react.dev/learn/installation
需要引入下面这三个CDN
注意：这三个顺序是不能变的
1.2 React初体验
1.2.1 JSX写法（掌握）
在html里面添加下面的代码。注意一定要添加type="text/babel"不然是会不识别语法的。
1.2.2 React原始写法（了解]]></description><category></category></item></channel></rss>