<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xdididi的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xdididi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xdididi]]></copyright><item><title><![CDATA[如何在本地部署 deepseek 并提供接口用于开发AI对话应用?]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/145701812</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/145701812</guid><author>xdididi</author><pubDate>Tue, 18 Feb 2025 11:33:04 +0800</pubDate><description><![CDATA[最近，DeepSeek 异常火爆，堪称国产 AI 之光，并且它还是免费开源的。只需打开 DeepSeek 对话界面，就能免费与其对话，让它解决你的问题，关键是它的回答质量非常高。当然，本篇文章并不是介绍如何使用 DeepSeek 进行对话的，因为这太简单了，连我 5 岁的儿子都会用。本篇文章将介绍如何在你本地的电脑上部署一个 DeepSeek 模型，并提供接口供你调用，以便后续基于它开发一些 AI 对话应用。]]></description><category></category></item><item><title><![CDATA[Vue3+NestJS实现后台权限管理系统上线啦!(附源码及教程)]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/145633034</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/145633034</guid><author>xdididi</author><pubDate>Fri, 14 Feb 2025 14:26:19 +0800</pubDate><description><![CDATA[由于篇幅原因,这里给大家简单介绍一些功能。返回结果统一封装项目中所有的接口返回结果都需要封装成统一的格式,方便前端处理。后端通过一个拦截器实现返回结果过滤image.png前端拿到的结果如下image.png业务异常信息处理当请求出现业务异常的时候,会返回一个统一的错误信息。后端封装代码如下image.png当我们想抛出业务异常时,只需要调用一下即可,比如密码错误throw new ApiException('密码错误', ApiErrorCode.PASSWORD_ERR);]]></description><category></category></item><item><title><![CDATA[Vue3+NestJS实现后台权限管理系统上线啦!(附源码及教程)]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/145000909</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/145000909</guid><author>xdididi</author><pubDate>Wed, 08 Jan 2025 10:22:15 +0800</pubDate><description><![CDATA[最近这段时间工作不忙,想着提升一下自己的技术,沉淀沉淀。于是做了一个开源的后台权限管理系统。因为我本身是一个前端开发,所以前端和服务端都是用的 JS 语言来开发的,前端用的框架是 [vue3]]]></description><category></category></item><item><title><![CDATA[一文解锁vue3中hooks的使用姿势]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/136915913</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/136915913</guid><author>xdididi</author><pubDate>Thu, 21 Mar 2024 17:51:51 +0800</pubDate><description><![CDATA[Vue 3中的Hooks函数是一个非常实用的功能,在组件开发中他能够将一些通用逻辑抽离实现逻辑的复用,大大提高了我们代码的可读性及可维护性。通过本篇文章相信大家已经对hooks的使用有了一定的理解,很多开源项目中都封装了大量的hooks函数,大家可以去查看学习他们是如何使用hooks函数的。]]></description><category></category></item><item><title><![CDATA[一篇文章带你了解 NestJS 中的 AOP 架构(中间件,拦截器,守卫,异常过滤器,管道)]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/136915894</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/136915894</guid><author>xdididi</author><pubDate>Thu, 21 Mar 2024 17:51:06 +0800</pubDate><description><![CDATA[在介绍 AOP 架构之前我们需要先了解一下 NestJS 对一个请求的处理过程。在NestJS中,一个请求首先会先经过控制器（Controller）,然后 Controller 调用服务 (Service)中的方法,在 Service 中可能还会进行数据库的访问(Repository)等操作,最后返回结果。但是如果我们想在这个过程中加入一些通用逻辑,比如打印日志,权限控制等该如何做呢?]]></description><category></category></item><item><title><![CDATA[NodeJS中使用winston做日志记录真的太好用辣]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/136915805</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/136915805</guid><author>xdididi</author><pubDate>Thu, 21 Mar 2024 17:48:35 +0800</pubDate><description><![CDATA[本篇文章介绍 winston 一些常见用法，包括 level 的优先级、日志打印的格式format以及一些transport的使用等等。其中,重点介绍了transport的用法，通过transport实现了生成日志文件，日志分割，日志上传接口等常见日志处理功能。纸上得来终觉浅，绝知此事要躬行，快去实践一下吧！参考文章:Nest 通关秘籍-28节。]]></description><category></category></item><item><title><![CDATA[2023前端各类明星项目排行榜]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/136915764</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/136915764</guid><author>xdididi</author><pubDate>Thu, 21 Mar 2024 17:47:15 +0800</pubDate><description><![CDATA[欢迎来到JavaScript Rising Stars的第八版，这是一个展示2023年JS生态系统趋势的地方。让我们看看您用的UI组件是如何席卷全球的！以下图表比较了过去12个月在GitHub上新增的星标数量。我们分析了来自Best of JS的项目，这是一个精选的与Web平台相关的最佳项目列表。]]></description><category></category></item><item><title><![CDATA[你可能不知道的一些 HTML 属性]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/136915675</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/136915675</guid><author>xdididi</author><pubDate>Thu, 21 Mar 2024 17:44:27 +0800</pubDate><description><![CDATA[html 属性非常多,或许大家对于一些常见的属性非常了解,但是还有一些不常见但是很实用的属性有的小伙伴可能就不太清楚了。本篇文章将为大家介绍一些不常见但是很有用的 html 属性,相信大家看完之后一定会有所收获。]]></description><category></category></item><item><title><![CDATA[作为前端需要知道的逻辑像素、设备像素、dpr、dpi...]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/136915582</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/136915582</guid><author>xdididi</author><pubDate>Thu, 21 Mar 2024 17:41:35 +0800</pubDate><description><![CDATA[作为前端开发者，我们经常需要面对各种不同的屏幕，如 PC、iPad、移动端等。这些屏幕的尺寸和分辨率各不相同，因此我们在 CSS 中设置的相同像素单位（px）在不同屏幕上的显示效果也会有所差异。如果你想深入了解其中的原因，那么就跟着本文一起探究一下像素的奥秘吧。首先我们需要知道什么是?设备像素，也称为物理像素，是指屏幕上的实际像素。我们都知道，屏幕是由许多小方块组成的，每个小方块只能显示一种颜色，而这 1 个小方块就是 1 个设备像素。每个设备的设备像素大小都不同，而且它们在出厂时就已经确定了每个设备像素的]]></description><category></category></item><item><title><![CDATA[一文带你掌握JS中数据类型转换、各种运算符规则(念头通达!)]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/136915526</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/136915526</guid><author>xdididi</author><pubDate>Thu, 21 Mar 2024 17:40:22 +0800</pubDate><description><![CDATA[JS 中的类型转换无论是我们在开发中还是在面试中都是经常遇到的。在正文开始之前先给大家看一道腾讯的面试题,你看看你能拿几分这种题目如果你掌握了 JS 的类型转换和运算符规则,那么你就能轻松拿满分,否则你连及格都很难做到。看完本篇文章之后,再回头看这个面试题或者其它关于类型转换及运算符的题目相信你都能够轻松应对。]]></description><category></category></item><item><title><![CDATA[一篇文章带你了解 NestJS 中的 AOP 架构(中间件,拦截器,守卫,异常过滤器,管道)]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/134932593</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/134932593</guid><author>xdididi</author><pubDate>Mon, 11 Dec 2023 17:37:33 +0800</pubDate><description><![CDATA[在介绍 AOP 架构之前我们需要先了解一下 NestJS 对一个请求的处理过程。在NestJS中,一个请求首先会先经过控制器（Controller）,然后 Controller 调用服务 (Service)中的方法,在 Service 中可能还会进行数据库的访问(Repository)等操作,最后返回结果。但是如果我们想在这个过程中加入一些通用逻辑,比如打印日志,权限控制等该如何做呢?]]></description><category></category></item><item><title><![CDATA[从0搭建Vue3组件库(五): 如何使用Vite打包组件库]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/132488962</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/132488962</guid><author>xdididi</author><pubDate>Fri, 25 Aug 2023 15:00:00 +0800</pubDate><description><![CDATA[本篇文章将介绍如何使用 vite 打包我们的组件库,同时告诉大家如何使用插件让打包后的文件自动生成声明文件(*.d.ts)]]></description><category></category></item><item><title><![CDATA[从0搭建Vue3组件库(二):Monorepo项目搭建]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/132488783</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/132488783</guid><author>xdididi</author><pubDate>Fri, 25 Aug 2023 09:50:02 +0800</pubDate><description><![CDATA[一个代码库里包含很多的项目,而这些项目虽然是相关联的,但是在逻辑上是独立的,可以由不同人或者团队来维护。]]></description><category></category></item><item><title><![CDATA[从0搭建Vue3组件库(四): 如何开发一个组件]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/132488931</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/132488931</guid><author>xdididi</author><pubDate>Fri, 25 Aug 2023 09:47:32 +0800</pubDate><description><![CDATA[本篇文章将介绍如何在组件库中开发一个组件,其中包括。]]></description><category></category></item><item><title><![CDATA[从0搭建Vue3组件库(三): 组件库的环境配置]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/132488816</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/132488816</guid><author>xdididi</author><pubDate>Fri, 25 Aug 2023 09:44:47 +0800</pubDate><description><![CDATA[本篇文章将在项目中引入 typescript,以及手动搭建一个用于测试组件库组件 Vue3 项目因为我们是使用 Vite+Ts 开发的是 Vue3 组件库,所以我们需要安装 typescript、vue3,同时项目将采用 Less 进行组件库样式的管理使用pnpm如果要安装在项目根目录下,则需要加-w。]]></description><category></category></item><item><title><![CDATA[从0搭建Vue3组件库(一): 开篇]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/132488741</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/132488741</guid><author>xdididi</author><pubDate>Fri, 25 Aug 2023 09:40:47 +0800</pubDate><description><![CDATA[这是从0搭建Vue3组件库系列文章第一篇文章,这个系列我曾经写过多篇文章,但是写完之后回过头来再看里面有很多遗漏以及不足之处,所以决定重新梳理这个系列,并从头开始搭建一个完整的Vue3组件库工程项目,旨在为大家提供更详尽的搭建过程以及更好的阅读体验。欢迎关注专栏Vite+TypeScript从零搭建Vue3组件库希望我的文章能够帮助大家学到更多的东西,一起学习共同进步，加油！]]></description><category></category></item><item><title><![CDATA[Vue3 中 keepAlive 如何搭配 VueRouter 来更自由的控制页面的状态缓存?]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/132470200</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/132470200</guid><author>xdididi</author><pubDate>Thu, 24 Aug 2023 11:15:21 +0800</pubDate><description><![CDATA[在 vue 中,默认情况下，一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时，会创建一个只带有初始状态的新实例。但是 vue 提供了 keep-alive 组件,它可以将一个动态组件包装起来从而实现组件切换时候保留其状态。本篇文章要介绍的并不是它的基本使用方法(这些官网文档已经写的很清楚了),而是它如何结合 VueRouter 来更自由的控制页面状态的缓存。]]></description><category></category></item><item><title><![CDATA[2023面试题大全(Html篇)]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/131102559</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/131102559</guid><author>xdididi</author><pubDate>Thu, 08 Jun 2023 10:29:05 +0800</pubDate><description><![CDATA[不知不觉又快要到了毕业季,很多同学即将毕业找工作。找工作就免不了去面试,作为一个前端提前准备面试题还是有必要的,一方面能巩固自己学习的内容,另一方面则是帮助我们通过面试找到一份好的工作。因此在这里,我将开设一个前端的专栏来以文章的形式专门讲解前端的面试题,由浅入深,循序渐进,希望能帮助更多的小伙伴。系列文章将从以下几个方面进行讲解
]]></description><category></category></item><item><title><![CDATA[如何在 vue3 中使用 jsx/tsx?]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/129729527</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/129729527</guid><author>xdididi</author><pubDate>Thu, 23 Mar 2023 14:02:58 +0800</pubDate><description><![CDATA[关于 Vue3 中 JSX 的语法就介绍这么多,其实如果你熟悉 Vue 的 SFC 语法还是能很快上手 JSX 语法的,因为它们也就是写法上有一些区别,用法上还是基本一样的。至于选择哪一种写法还是取决于我们自己,我的建议是二者兼得,你可以根据实现不同的功能采用不同的写法。当然,如果你是一个团队项目,你还是乖乖听你领导的吧。]]></description><category></category></item><item><title><![CDATA[盘点Vue2和Vue3的10种组件通信方式(值得收藏)]]></title><link>https://blog.youkuaiyun.com/xdididi/article/details/126438463</link><guid>https://blog.youkuaiyun.com/xdididi/article/details/126438463</guid><author>xdididi</author><pubDate>Sat, 20 Aug 2022 12:48:04 +0800</pubDate><description><![CDATA[Vue中组件通信方式有很多，其中Vue2和Vue3实现起来也会有很多差异；本文将通过 以及三种不同实现方式全面介绍Vue2和Vue3的组件通信方式。其中将要实现的通信方式如下表所示props是组件通信中最常用的通信方式之一。父组件通过v-bind传入，子组件通过props接收，下面是它的三种实现方式

组合式Api



setup语法糖


注意props中数据流是单项的，即子组件不可改变父组件传来的值在组合式API中，如果想在子组件中用其它变量接收props的值时需要使用toRef将props中的属性转]]></description><category></category></item></channel></rss>