<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>憶夣</title><link>https://blog.yilee.top/</link><atom:link href="https://blog.yilee.top/rss.xml" rel="self" type="application/rss+xml"/><description>寄蜉蝣于天地，渺沧海之一粟。</description><generator>Halo v2.25.0</generator><language>zh-cn</language><image><url>https://oss.yilee.top/yilee/logo.png</url><title>憶夣</title><link>https://blog.yilee.top/</link></image><lastBuildDate>Mon, 7 Sep 2026 12:30:43 GMT</lastBuildDate><item><title><![CDATA[Hello Halo]]></title><link>https://blog.yilee.top/archives/hello-halo</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Hello%20Halo&amp;url=/archives/hello-halo" width="1" height="1" alt="" style="opacity:0;">如果你看到了这一篇文章，那么证明你已经安装成功了，感谢使用 Halo 进行创作，希望能够使用愉快。]]></description><guid isPermaLink="false">/archives/hello-halo</guid><dc:creator>yilee</dc:creator><category>默认分类</category><pubDate>Fri, 31 May 2024 13:07:47 GMT</pubDate></item><item><title><![CDATA[Linux To Go（制作随身系统U盘）]]></title><link>https://blog.yilee.top/archives/linuxtogo-zhi-zuo-sui-shen-xi-tong-u-pan</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Linux%20To%20Go%EF%BC%88%E5%88%B6%E4%BD%9C%E9%9A%8F%E8%BA%AB%E7%B3%BB%E7%BB%9FU%E7%9B%98%EF%BC%89&amp;url=/archives/linuxtogo-zhi-zuo-sui-shen-xi-tong-u-pan" width="1" height="1" alt="" style="opacity:0;">## 摘要 本文介绍了如何使用 **Kubuntu** 系统制作一个可随身携带的 Linux 系统 U 盘（Linux To Go）。核心方法是通过 **VirtualBox 虚拟机**间接安装系统到 U 盘上，具体步骤如下： 1. **创建无硬盘虚拟机**：在 VirtualBox 中新建一个不挂载硬盘的虚拟机，其他参数保持默认。 2. **挂载 ISO 镜像**：将 Kubuntu 安装镜像加载到虚拟光驱中。 3. **挂载 U 盘设备**：将目标 U 盘以 USB 3.0 模式连接到虚拟机。 4. **启动虚拟机并安装**：从虚拟机引导进入 Kubuntu 安装界面，选择将系统安装到整块 U 盘上。 文章特别强调，该方法目前仅适用于带图形界面、支持"试用"模式的发行版，无界面的系统因驱动或引导问题可能无法正常启动。整个过程无需物理机直接操作，利用虚拟机中转即可完成 U 盘系统部署，适合需要随身携带个人 Linux 环境的用户。]]></description><guid isPermaLink="false">/archives/linuxtogo-zhi-zuo-sui-shen-xi-tong-u-pan</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2F0ef887e457a7b5128a78deb850a40dd9.png&amp;size=m" type="image/jpeg" length="67603"/><category>Linux</category><pubDate>Wed, 3 May 2023 15:07:00 GMT</pubDate></item><item><title><![CDATA[记录 Debian 11 KDE 安装后美化（MAC Sur）过程]]></title><link>https://blog.yilee.top/archives/ji-lu-debian11kde-an-zhuang-hou-mei-hua-macsur-guo-cheng</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=%E8%AE%B0%E5%BD%95%20Debian%2011%20KDE%20%E5%AE%89%E8%A3%85%E5%90%8E%E7%BE%8E%E5%8C%96%EF%BC%88MAC%20Sur%EF%BC%89%E8%BF%87%E7%A8%8B&amp;url=/archives/ji-lu-debian11kde-an-zhuang-hou-mei-hua-macsur-guo-cheng" width="1" height="1" alt="" style="opacity:0;">## 摘要 本文记录了在 **Debian 11 KDE** 桌面环境下进行 **macOS Big Sur 风格美化**的完整过程，主要包含以下步骤： 1. **安装基础工具**：通过 `apt` 安装 Qt 主题引擎 Kvantum、Git 和 Latte Dock。 2. **下载并安装 WhiteSur 主题**：从 GitHub 克隆 WhiteSur 的光标、图标和 KDE 三套主题仓库，按光标→图标→主题的顺序执行安装脚本。 3. **配置主题**：在系统设置中应用全局主题并勾选桌面布局；启动 Latte Dock 作为底部任务栏；向顶栏拖入小部件；通过 Kvantum Manager 设置应用程序风格并保存；最后自定义登录页面背景。 4. **补充说明**：列出了非 root 和 root 用户下 plasma 主题、图标、插件等资源的安装路径。 整体流程清晰，适合想将 KDE 桌面打造为类 macOS 风格的用户参考操作。]]></description><guid isPermaLink="false">/archives/ji-lu-debian11kde-an-zhuang-hou-mei-hua-macsur-guo-cheng</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2Fcba3c7c3cb1dbffd7432280bbfb194a5.jpg&amp;size=m" type="image/jpeg" length="557492"/><category>Linux</category><pubDate>Mon, 1 May 2023 12:43:00 GMT</pubDate></item><item><title><![CDATA[Apline Linux 安装教程（VBox）]]></title><link>https://blog.yilee.top/archives/aplinelinux-an-zhuang-jiao-cheng-vbox</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Apline%20Linux%20%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B%EF%BC%88VBox%EF%BC%89&amp;url=/archives/aplinelinux-an-zhuang-jiao-cheng-vbox" width="1" height="1" alt="" style="opacity:0;">## 摘要 本文详细介绍了在 VirtualBox 中安装 Alpine Linux 的完整流程，主要包含以下四个部分： **一、安装准备**：从官网下载 Alpine STANDARD 镜像，在 VirtualBox 中创建虚拟机（建议分配1G内存、16G硬盘），并挂载镜像文件。 **二、系统安装**：启动后以 root 无密码登录，运行 `setup-alpine` 命令逐步配置——包括键盘布局（us）、主机名、网卡（DHCP自动获取）、root密码、时区（Asia/Shanghai）、代理、软件源（推荐阿里云源）、SSH服务（openssh），以及磁盘格式化（sys模式）。安装完成后卸载镜像并重启。 **三、SSH远程登录配置**：修改 `/etc/ssh/sshd_config` 开启 `PermitRootLogin yes` 和 `PasswordAuthentication yes`，重启 sshd 服务后即可远程连接。 **四、日常管理**：涵盖 apk 包管理（搜索、安装、升级、删除）、OpenRC 服务管理（rc-service/rc-update）、网卡配置（DHCP与静态IP）、双网卡默认路由设置，以及常用软件安装方法。 全文约200字，涵盖了从安装到日常运维的关键步骤，适合 Alpine Linux 初学者参考。]]></description><guid isPermaLink="false">/archives/aplinelinux-an-zhuang-jiao-cheng-vbox</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2F4d3b7a62d551c26e01588ca70f5c875a.png&amp;size=m" type="image/jpeg" length="68993"/><category>Linux</category><pubDate>Sat, 22 Apr 2023 03:32:10 GMT</pubDate></item><item><title><![CDATA[Django学习目录]]></title><link>https://blog.yilee.top/archives/django-xue-xi-mu-lu</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Django%E5%AD%A6%E4%B9%A0%E7%9B%AE%E5%BD%95&amp;url=/archives/django-xue-xi-mu-lu" width="1" height="1" alt="" style="opacity:0;">我先打开几个关键链接，了解整体内容，再进行摘要总结。 根据我阅读的所有文章内容，以下是为本 Django 学习目录生成的摘要： --- ## 摘要 本学习目录全面覆盖了 Django Web 开发的核心知识与进阶主题，从基础到实战，适合系统学习。内容主要包括： 1. **Web 基础与 HTTP 协议**：深入解析 HTTP 协议原理、请求方法、状态码、HTTPS 加密过程，为 Web 开发打下基础。同时通过 Socket 实例揭示 Web 框架本质。 2. **Django 核心组件**：涵盖 URL 路由系统（正则匹配、分组、反向解析）、视图函数（FBV/CBV、Request/Response 对象）、模板系统（变量、过滤器、标签、模板继承）、以及 Form/ModelForm 组件（字段校验、钩子方法、HTML 生成）。 3. **ORM 模型层**：从单表 CRUD 操作、字段类型与参数，到多表关系（一对多、多对多、中介模型）的创建与查询，再到聚合、F/Q 查询、ORM 锁与事务控制，以及查询优化（select_related、prefetch_related、exists/iterator）。 4. **会话与安全**：Cookie 与 Session 机制详解（设置、获取、删除、登录验证），以及 Django 内置认证系统（auth 模块、User 对象、扩展 auth_user 表）。 5. **中间件与 Ajax**：自定义中间件的五个钩子方法与执行流程，实现全局登录认证、频率控制等。Ajax 异步请求实现页面局部刷新，以及 CSRF Token 设置。 6. **高级主题**：分页器（内置 Paginator 与自定义分页）、缓存机制（6 种后端配置、全站/视图/模板级缓存）、信号系统（内置信号与自定义信号）、ContentType 组件（处理多外键通用关系）、文件上传下载、跨域通信（CORS 与 JSONP）。 7. **Django REST Framework**：RESTful API 设计规范，DRF 的 APIView、序列化组件（Serializer）、视图组件、认证/权限/频率组件、URL 注册器、响应器与分页组件。 8. **部署与性能优化**：ORM 性能优化、数据库主从复制与读写分离配置，以及 Django Debug Toolbar 调试工具的使用。 整体而言，该目录从零基础到中高级，系统性强，覆盖 Django 开发的主要技术栈，并延伸至 DRF、缓存、跨域、数据库优化等生产级主题，是学习 Django 全栈开发的优秀资料。]]></description><guid isPermaLink="false">/archives/django-xue-xi-mu-lu</guid><dc:creator>yilee</dc:creator><category>Python</category><pubDate>Tue, 4 Apr 2023 14:56:23 GMT</pubDate></item><item><title><![CDATA[Centos7 文件查找命令（FZF）]]></title><link>https://blog.yilee.top/archives/centos7-wen-jian-cha-zhao-ming-ling-fzf</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Centos7%20%E6%96%87%E4%BB%B6%E6%9F%A5%E6%89%BE%E5%91%BD%E4%BB%A4%EF%BC%88FZF%EF%BC%89&amp;url=/archives/centos7-wen-jian-cha-zhao-ming-ling-fzf" width="1" height="1" alt="" style="opacity:0;">本文介绍了在 CentOS 7 系统上安装和配置 fzf（模糊查找工具）及配套工具的完整流程，主要包括以下几步： 1. **安装 fzf 及相关插件**：通过 vim-plug 插件管理器安装 fzf、fzf.vim 和 NERDTree，配置 `~/.vimrc` 文件后，使用 `:PlugInstall` 命令完成安装。 2. **安装 fd 搜索工具**：从 GitHub 下载 fd 的预编译版本并部署到系统路径；若遇到 GLIBC 版本不足的问题，需手动编译安装 glibc-2.18。同时可选安装 the_silver_searcher（AG）以增强搜索能力。 3. **配置文件预览脚本**：编写 Python 脚本 `file_preview.py`，根据文件类型自动选择合适的预览方式——目录显示 `ls`、压缩包显示内容列表、JSON 用 `jq` 格式化、网页用 `w3m` 转换为文本、文本文件用 `bat` 高亮显示等，实现智能预览。需提前安装 w3m、bat、unrar 等依赖工具。 4. **配置 fzf 环境变量**：在 `~/.bashrc` 中设置 `FZF_DEFAULT_COMMAND`（使用 fd 替代 find 进行文件搜索）和 `FZF_DEFAULT_OPTS`（启用预览窗口），并自定义路径和目录补全函数 `_fzf_compgen_path` 和 `_fzf_compgen_dir`，最后加载 fzf 的 bash 补全脚本。 总体而言，本文提供了一套完整的 CentOS 7 下 fzf 模糊查找环境的搭建方案，通过 fzf + fd + 智能预览的组合，大幅提升了文件查找和浏览效率。]]></description><guid isPermaLink="false">/archives/centos7-wen-jian-cha-zhao-ming-ling-fzf</guid><dc:creator>yilee</dc:creator><category>Linux</category><pubDate>Tue, 4 Apr 2023 14:55:25 GMT</pubDate></item><item><title><![CDATA[记录 Ubuntu 20.04 安装后美化（MAC）过程]]></title><link>https://blog.yilee.top/archives/ji-lu-ubuntu2004-an-zhuang-hou-mei-hua-mac-guo-cheng</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=%E8%AE%B0%E5%BD%95%20Ubuntu%2020.04%20%E5%AE%89%E8%A3%85%E5%90%8E%E7%BE%8E%E5%8C%96%EF%BC%88MAC%EF%BC%89%E8%BF%87%E7%A8%8B&amp;url=/archives/ji-lu-ubuntu2004-an-zhuang-hou-mei-hua-mac-guo-cheng" width="1" height="1" alt="" style="opacity:0;">好的，以下是根据文章内容生成的摘要： --- **文章摘要：** 本文详细记录了在 Ubuntu 20.04 系统上模拟 macOS 风格美化的完整过程。主要包含以下步骤：首先安装并配置 GNOME Tweak Tool 及其扩展作为主题管理工具；其次从开源平台下载并应用 Sierra-light GTK 主题和 Cupertino 图标主题；然后通过 Tweaks 工具统一设置应用程序、Shell 及图标样式；接着使用脚本自定义锁屏壁纸背景；随后通过浏览器扩展安装 Dash to Dock，将左侧面板替换为 macOS 风格的 Dock 栏；最后为多系统用户配置了 BigSur 风格的 GRUB 开机引导界面主题。全文提供了详细的命令行操作指令和软件资源下载链接，是一篇实用且系统化的 Ubuntu 主题美化教程。]]></description><guid isPermaLink="false">/archives/ji-lu-ubuntu2004-an-zhuang-hou-mei-hua-mac-guo-cheng</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2Faccce7c4e02c0fd2356e4d1c2c6462ca.png&amp;size=m" type="image/jpeg" length="2909600"/><category>Linux</category><pubDate>Tue, 4 Apr 2023 14:54:38 GMT</pubDate></item><item><title><![CDATA[Vue3快速上手]]></title><link>https://blog.yilee.top/archives/vue3-kuai-su-shang-shou</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Vue3%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B&amp;url=/archives/vue3-kuai-su-shang-shou" width="1" height="1" alt="" style="opacity:0;">## Vue3快速上手 本文是一篇Vue3入门教程，主要涵盖以下内容： **Vue3新特性**：Vue3于2020年9月发布，相比Vue2性能显著提升（打包体积减少41%，渲染更快，内存减少54%），源码层面使用Proxy替代defineProperty实现响应式，全面拥抱TypeScript，并引入Composition API（setup、ref、reactive、watch等）、Fragment、Teleport、Suspense等新特性。 **工程创建**：支持vue-cli（需4.5.0+）和vite两种方式创建项目，vite具有冷启动快、热更新高效的优势。 **Composition API详解**：setup函数是组合API的入口；ref用于定义基本类型响应式数据（通过.value操作），reactive用于定义对象类型的响应式数据（基于Proxy实现）；computed和watch/watchEffect提供计算属性与监听功能；生命周期钩子以on前缀形式提供；provide/inject实现祖孙组件通信；自定义hook函数可封装复用逻辑。 **其他变化**：组件可无根标签（Fragment），全局API迁移至app实例，移除了过滤器、keyCode修饰符和v-on.native，过渡类名也有所调整。]]></description><guid isPermaLink="false">/archives/vue3-kuai-su-shang-shou</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fuser-images.githubusercontent.com%2F499550%2F93624428-53932780-f9ae-11ea-8d16-af949e16a09f.png&amp;size=m" type="image/jpeg" length="0"/><category>前端</category><pubDate>Tue, 4 Apr 2023 14:34:23 GMT</pubDate></item><item><title><![CDATA[4、VueRouter  插件]]></title><link>https://blog.yilee.top/archives/4vuerouter-cha-jian</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=4%E3%80%81VueRouter%20%20%E6%8F%92%E4%BB%B6&amp;url=/archives/4vuerouter-cha-jian" width="1" height="1" alt="" style="opacity:0;">本文系统总结了Vue Router的核心知识点。前端路由本质是路径与组件的映射，文中详细介绍了其基本使用步骤：安装插件、编写配置、使用`router-link`与`router-view`实现切换与展示。 核心进阶内容涵盖：多级路由（children配置）、参数传递（query与params）、命名路由简化跳转、`props`配置方便组件接收参数，以及`replace`属性和编程式导航灵活控制路由跳转。 此外，文章还讲解了使用`keep-alive`缓存组件及配套的`activated`/`deactivated`生命周期钩子；通过全局、独享、组件内三类路由守卫实现权限控制；最后对比了hash模式与history模式的优缺点及适用场景。]]></description><guid isPermaLink="false">/archives/4vuerouter-cha-jian</guid><dc:creator>yilee</dc:creator><category>前端</category><pubDate>Tue, 4 Apr 2023 14:34:19 GMT</pubDate></item><item><title><![CDATA[3、Vuex插件]]></title><link>https://blog.yilee.top/archives/3vuex-cha-jian</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=3%E3%80%81Vuex%E6%8F%92%E4%BB%B6&amp;url=/archives/3vuex-cha-jian" width="1" height="1" alt="" style="opacity:0;">## 文章摘要 本文系统介绍了 **Vuex** 这一 Vue 状态管理插件的核心概念与实战用法。 - **基本概念**：Vuex 用于对 Vue 应用中多个组件的共享状态进行集中式读写管理，是跨组件通信的有效方案，适用于多组件共享数据的场景。 - **环境搭建**：通过创建 `store/index.js` 文件，配置 `actions`、`mutations`、`state` 三大核心对象，并在 `main.js` 中将 store 注入 Vue 实例即可完成初始化。 - **数据操作**：组件通过 `$store.state` 读取数据，通过 `$store.dispatch` 或 `$store.commit` 触发状态变更；`getters` 则用于对 state 数据进行加工后供组件使用。 - **辅助函数**：`mapState`、`mapGetters`、`mapActions`、`mapMutations` 四个 map 方法可将 store 中的状态和操作映射为组件的计算属性和方法，简化代码书写，均支持对象和数组两种写法。 - **模块化与命名空间**：通过 `modules` 将 store 拆分为多个子模块，并利用 `namespaced: true` 开启命名空间，避免命名冲突，提升代码可维护性，组件可通过带模块名的路径或 map 方法加模块名的方式访问各模块的状态与操作。 总之，本文涵盖了 Vuex 从入门到模块化进阶的完整知识体系，为开发者提供了清晰的实践指南。]]></description><guid isPermaLink="false">/archives/3vuex-cha-jian</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2F0e8e10aa8f7d4fadb2f47d7b7e9d0c00.png&amp;size=m" type="image/jpeg" length="8112"/><category>前端</category><pubDate>Tue, 4 Apr 2023 14:34:15 GMT</pubDate></item><item><title><![CDATA[2、vue脚手架开发]]></title><link>https://blog.yilee.top/archives/2vue-jiao-shou-jia-kai-fa</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=2%E3%80%81vue%E8%84%9A%E6%89%8B%E6%9E%B6%E5%BC%80%E5%8F%91&amp;url=/archives/2vue-jiao-shou-jia-kai-fa" width="1" height="1" alt="" style="opacity:0;">以下是该篇文章的摘要总结： --- **Vue 脚手架开发核心知识点总结（约200字）** 本文系统梳理了 Vue 脚手架开发的关键技术点，涵盖以下主要内容： 1. **脚手架基础**：项目文件结构解析、Vue 完整版与运行版的区别及配置代理方法。 2. **核心配置**：ref 属性用于获取 DOM 或组件实例；props 实现父子组件数据传递（只读）；mixin 混入提取组件共用配置；插件通过 install 方法增强 Vue 功能；scoped 样式防止冲突。 3. **组件通信**：重点介绍了自定义事件（子→父）、全局事件总线、消息订阅与发布（pubsub-js）三种方式，实现任意组件间通信。 4. **高级特性**：nextTick 在 DOM 更新后执行回调；transition 组件实现过渡动画（支持 animate.css）；三种插槽（默认、具名、作用域）实现父组件向子组件插入内容。 5. **本地存储**：使用 sessionStorage 和 localStorage 进行浏览器端数据持久化。 整体上，文章为 Vue 组件化开发提供了完整的实践指南。 --- 如需进一步精简或调整侧重点，请告诉我！]]></description><guid isPermaLink="false">/archives/2vue-jiao-shou-jia-kai-fa</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2F7c887eca9ada437aafdb2b353d57b907.png&amp;size=m" type="image/jpeg" length="11706"/><category>前端</category><pubDate>Tue, 4 Apr 2023 14:34:11 GMT</pubDate></item><item><title><![CDATA[1、Vue 基础语法]]></title><link>https://blog.yilee.top/archives/1vue-ji-chu-yu-fa</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=1%E3%80%81Vue%20%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95&amp;url=/archives/1vue-ji-chu-yu-fa" width="1" height="1" alt="" style="opacity:0;">## 摘要 本文系统介绍了 Vue.js 的基础语法与核心概念，涵盖以下要点： **核心基础**：Vue 通过创建 Vue 实例并传入配置对象来工作，支持两种模板语法——插值语法（`{{}}`）用于解析标签体内容，指令语法（`v-bind`等）用于解析标签属性和事件。 **数据与响应式**：数据绑定分为单向（`v-bind`）和双向（`v-model`）；Vue 基于MVVM模型，通过 `Object.defineProperty` 实现数据代理和响应式监测，数据变化时页面自动更新。 **常用功能**：包括事件绑定（`v-on`/`@`）及事件修饰符、计算属性（`computed`，具有缓存机制）、监视属性（`watch`，支持深度监视和异步操作）、条件渲染（`v-if`/`v-show`）、列表渲染（`v-for` 及 key 的原理）、表单数据收集与过滤器、内置指令（`v-text`/`v-html`/`v-once`等）和自定义指令。 **生命周期与组件**：Vue 实例拥有完整的生命周期钩子（如 `mounted`、`beforeDestroy`）；组件分为非单文件组件和单文件组件，使用 `Vue.extend` 定义，组件中 `data` 必须为函数式，VueComponent 原型链指向 Vue 原型以共享方法和属性。]]></description><guid isPermaLink="false">/archives/1vue-ji-chu-yu-fa</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2Fa491fad3f7b842be913d58a3ab6e3a67.png&amp;size=m" type="image/jpeg" length="373744"/><category>前端</category><pubDate>Tue, 4 Apr 2023 14:34:06 GMT</pubDate></item><item><title><![CDATA[Springboot 集成 socket.io]]></title><link>https://blog.yilee.top/archives/springboot-ji-cheng-socketio</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Springboot%20%E9%9B%86%E6%88%90%20socket.io&amp;url=/archives/springboot-ji-cheng-socketio" width="1" height="1" alt="" style="opacity:0;">## 摘要 本文介绍了在 **Spring Boot** 中集成 **Socket.IO**（基于 netty-socketio）的完整实现方案，涵盖后端配置与前端对接两部分。 ### 后端 1. **依赖配置**：引入 `netty-socketio` 和 `lombok`。 2. **参数管理**：通过 `application.yml` 配置 host、port、线程数、心跳超时等参数，并用 `@ConfigurationProperties` 注入到 `SocketIO` 类中。 3. **核心配置**：`SocketIOConfig` 类将 `SocketIOServer` 注册为 Spring Bean，同时配置了 `AuthorizationListener` 实现基于 token 的连接认证拦截。 4. **业务服务**：`SocketIOService` 通过 `@OnConnect`、`@OnDisconnect`、`@OnEvent` 注解处理客户端连接、断开及自定义消息事件，使用 `ConcurrentHashMap` 管理已连接客户端，并在 Bean 生命周期中自动启动/停止服务。 ### 前端 通过引入 jQuery 和 Socket.IO 客户端库，使用 `io.connect()` 连接后端（携带 token 认证），监听 `connect`、`push`、`disconnect` 等事件，并通过 `socket.emit('json', data)` 向服务端发送消息，实现双向实时通信。]]></description><guid isPermaLink="false">/archives/springboot-ji-cheng-socketio</guid><dc:creator>yilee</dc:creator><category>Java</category><pubDate>Tue, 4 Apr 2023 14:30:32 GMT</pubDate></item><item><title><![CDATA[Springboot 安装 websocket（有拦截器）]]></title><link>https://blog.yilee.top/archives/springboot-an-zhuang-websocket-you-lan-jie-qi-</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Springboot%20%E5%AE%89%E8%A3%85%20websocket%EF%BC%88%E6%9C%89%E6%8B%A6%E6%88%AA%E5%99%A8%EF%BC%89&amp;url=/archives/springboot-an-zhuang-websocket-you-lan-jie-qi-" width="1" height="1" alt="" style="opacity:0;">本文介绍了在SpringBoot中集成带拦截器功能的WebSocket的完整流程，主要包含四个步骤： 1. **引入依赖**：添加`spring-boot-starter-websocket`。 2. **消息处理**：继承`AbstractWebSocketHandler`类，重写连接建立、关闭、错误处理及文本/二进制消息接收等方法，等同于JSR-356的常用注解。 3. **握手拦截**：实现`HandshakeInterceptor`接口，在`beforeHandshake`中提取请求头进行Token鉴权，决定是否允许握手。 4. **注册与前端**：通过`WebSocketConfigurer`将处理器与拦截器绑定到`/websocket`端点；前端使用原生JS建立连接，并实现消息收发及窗口关闭时自动断开连接的逻辑。]]></description><guid isPermaLink="false">/archives/springboot-an-zhuang-websocket-you-lan-jie-qi-</guid><dc:creator>yilee</dc:creator><category>Java</category><pubDate>Tue, 4 Apr 2023 14:29:37 GMT</pubDate></item><item><title><![CDATA[Springboot 安装 websocket（无拦截器）]]></title><link>https://blog.yilee.top/archives/springboot-an-zhuang-websocket-wu-lan-jie-qi-</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=Springboot%20%E5%AE%89%E8%A3%85%20websocket%EF%BC%88%E6%97%A0%E6%8B%A6%E6%88%AA%E5%99%A8%EF%BC%89&amp;url=/archives/springboot-an-zhuang-websocket-wu-lan-jie-qi-" width="1" height="1" alt="" style="opacity:0;">本文介绍了在SpringBoot中无拦截器环境下快速集成WebSocket的方法，主要包含三个步骤： 1. **配置依赖**：引入`spring-boot-starter-websocket`依赖。 2. **后端配置**：编写配置类注入`ServerEndpointExporter`以自动注册端点；创建服务类，通过`@ServerEndpoint`注解暴露连接路径，利用`ConcurrentHashMap`管理客户端Session，并实现`@OnOpen`、`@OnClose`、`@OnMessage`等注解方法处理连接建立、断开及消息收发逻辑。 3. **前端配置**：使用原生JS建立WebSocket连接，监听各种回调状态，实现消息的页面渲染与发送功能。]]></description><guid isPermaLink="false">/archives/springboot-an-zhuang-websocket-wu-lan-jie-qi-</guid><dc:creator>yilee</dc:creator><category>Java</category><pubDate>Tue, 4 Apr 2023 14:28:00 GMT</pubDate></item><item><title><![CDATA[MySQL数据库学习目录]]></title><link>https://blog.yilee.top/archives/mysql-shu-ju-ku-xue-xi-mu-lu</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=MySQL%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%A6%E4%B9%A0%E7%9B%AE%E5%BD%95&amp;url=/archives/mysql-shu-ju-ku-xue-xi-mu-lu" width="1" height="1" alt="" style="opacity:0;">## 摘要 MySQL数据库学习目录是作者“cls超”在博客园上发布的一系列MySQL数据库学习文章，涵盖了MySQL从入门到进阶的完整知识体系。内容主要包括：数据库基础概念与MySQL的安装配置；数据库、表、行（记录）的详细操作（增删改查）；单表和多表查询（包括连接查询和子查询）；常用工具（如Navicat、pymysql）；高级特性（视图、触发器、事务、存储过程、函数）；性能优化（索引原理、慢查询优化）；安全与权限管理（创建用户、授权）；数据备份与还原（mysqldump）；Python数据库工具DBUtils；锁机制与事务优化；以及数据库设计范式（第一、二、三范式）等。该系列文章从基础语法到实战应用，适合MySQL初学者和需要系统复习的开发者参考学习。]]></description><guid isPermaLink="false">/archives/mysql-shu-ju-ku-xue-xi-mu-lu</guid><dc:creator>yilee</dc:creator><category>数据库</category><pubDate>Tue, 4 Apr 2023 14:27:27 GMT</pubDate></item><item><title><![CDATA[7、算法问题选编]]></title><link>https://blog.yilee.top/archives/7-suan-fa-wen-ti-xuan-bian-algo</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=7%E3%80%81%E7%AE%97%E6%B3%95%E9%97%AE%E9%A2%98%E9%80%89%E7%BC%96&amp;url=/archives/7-suan-fa-wen-ti-xuan-bian-algo" width="1" height="1" alt="" style="opacity:0;">本文介绍了**多线程算法、矩阵运算、数论算法和字符串匹配**四大主题。具体如下： **多线程算法**：讲解动态多线程编程模型，通过`spawn`、`sync`和`parallel for`等关键词实现嵌套并行与并行循环，以斐波那契计算、矩阵乘法（朴素/分治/Strassen）和归并排序为例，分析工作量T₁、持续时间T∞及并行度。 **矩阵运算**：阐述LUP分解（PA=LU）及其高斯消元实现，并说明基于LUP分解在Θ(n³)时间内求解矩阵逆的方法。 **数论算法**：给出欧几里得算法及其扩展形式用于计算最大公约数与贝祖系数，介绍模线性方程求解算法，以及利用反复平方法实现模取幂运算。 **字符串匹配**：介绍四种方法：朴素匹配（最坏O(nm)）、Rabin-Karp基于滚动哈希的匹配、有限自动机匹配、以及Knuth-Morris-Pratt（KMP）算法通过前缀函数实现Θ(n)匹配时间。]]></description><guid isPermaLink="false">/archives/7-suan-fa-wen-ti-xuan-bian-algo</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2Fabc9dba3309e4cfda1af3538cb41bc0c.png&amp;size=m" type="image/jpeg" length="178515"/><category>笔记</category><pubDate>Tue, 4 Apr 2023 14:18:25 GMT</pubDate></item><item><title><![CDATA[6、图算法]]></title><link>https://blog.yilee.top/archives/6-tu-suan-fa-algo</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=6%E3%80%81%E5%9B%BE%E7%AE%97%E6%B3%95&amp;url=/archives/6-tu-suan-fa-algo" width="1" height="1" alt="" style="opacity:0;"># 图算法核心内容摘要 本文系统介绍了**四大类图算法**，涵盖图搜索、生成树、最短路径和最大流问题，每种算法均附有Java实现与复杂度分析。 ## 一、图搜索算法 - **图的表示**：邻接链表（适合稀疏图，空间O(V+E)）和邻接矩阵两种标准方式。 - **BFS（广度优先搜索）**：使用FIFO队列逐层探索，时间O(V+E)，可计算**无权最短路径**，生成广度优先树。 - **DFS（深度优先搜索）**：使用递归/栈深入探索，时间O(V+E)，前驱子图形成**森林结构**。产生括号化时间戳，可将边分为**树边、后向边、前向边、横向边**四类。 - **拓扑排序**：基于DFS完成时间逆序排列，时间O(V+E)，仅适用于**有向无环图(DAG)**。 - **强连通分量(SCC)**：两次DFS算法（原图→转置图），时间O(V+E)。 ## 二、最小生成树 - **贪心通用框架**：逐步选取安全边。 - **Kruskal算法**：按边权排序+并查集，时间O(ElgV)。 - **Prim算法**：从单节点扩展+最小优先队列，时间O(ElgV)。 ## 三、最短路径算法 | 算法 | 适用条件 | 时间��杂度 | |------|---------|-----------| | **Bellman-Ford** | 允许负权边，检测负环 | O(VE) | | **DAG最短路径** | 有向无环图，允许负权 | O(V+E) | | **Dijkstra** | 仅非负权边 | O((V+E)lgV) | | **Floyd-Warshall** | 所有结点对（负权边但无负环）| Θ(V³) | | **Johnson** | 稀疏图所有结点对 | O(V²lgV+VE) | 核心思想：**松弛操作**是所有最短路径算法的基础；Bellman-Ford还可求解**差分约束系统**。 ## 四、最大流 - **Ford-Fulkerson方法**：在残存网络中反复寻找增广路径并更新流。基于**最大流最小切割定理**，当残存网络无增广路径时达到最大流。 - **Edmonds-Karp算法**：用BFS选最短增广路径，时间O(VE²)。 - **最大二分匹配**：将二分图转化为流网络（加源点、汇点，单位容量），用最大流求解，时间O(VE)。 &gt; 整体而言，BFS和DFS是图算法的基石；贪心策略驱动MST算法；松弛操作统一最短路径算法；增广路径思想贯穿最大流问题。]]></description><guid isPermaLink="false">/archives/6-tu-suan-fa-algo</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2Ff5fb330a801042988d18dfbdbbe1a0dd.png&amp;size=m" type="image/jpeg" length="639065"/><category>笔记</category><pubDate>Tue, 4 Apr 2023 14:18:21 GMT</pubDate></item><item><title><![CDATA[5、高级数据结构]]></title><link>https://blog.yilee.top/archives/5-gao-ji-shu-ju-jie-gou-algo</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=5%E3%80%81%E9%AB%98%E7%BA%A7%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84&amp;url=/archives/5-gao-ji-shu-ju-jie-gou-algo" width="1" height="1" alt="" style="opacity:0;">## 摘要 本文介绍了多种高级数据结构，重点阐述**B树**、**斐波那契堆**和**不相交集合**三种数据结构。 **B树**是为磁盘存储设计的平衡搜索树，节点可拥有大量子节点（分支因子大），因此高度远低于红黑树。B树通过最小度数t约束每个节点的关键字数量（t-1至2t-1），支持查找、插入和删除操作，均可在O(logₜn)时间内完成且仅需O(h)次磁盘访问。插入时采用"沿途预分裂"策略防止回溯；删除时通过借节点或合并子节点保证节点关键字不少于t-1个，同样实现单趟下降完成删除。 **斐波那契堆**由多棵最小堆序的有根树组成，通过环形双向链表连接根节点，支持可合并堆的基本操作及DECREASE-KEY和DELETE操作，部分操作可在O(1)摊还时间内完成。 **不相交集合数据结构**维护一组不相交动态集合，支持MAKE-SET、UNION和FIND-SET三种操作。其高效实现采用不相交集合森林表示，结合"按秩合并"与"路径压缩"两种启发式策略，实现接近O(1)的均摊时间复杂度。]]></description><guid isPermaLink="false">/archives/5-gao-ji-shu-ju-jie-gou-algo</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2F27ad23466d63417aac91b2198fa4fa7f.png&amp;size=m" type="image/jpeg" length="607618"/><category>笔记</category><pubDate>Tue, 4 Apr 2023 14:18:18 GMT</pubDate></item><item><title><![CDATA[3、数据结构]]></title><link>https://blog.yilee.top/archives/3-shu-ju-jie-gou-algo</link><description><![CDATA[<img src="https://blog.yilee.top/plugins/feed/assets/telemetry.gif?title=3%E3%80%81%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84&amp;url=/archives/3-shu-ju-jie-gou-algo" width="1" height="1" alt="" style="opacity:0;">这篇文章系统介绍了**数据结构**的核心概念与经典实现，主要涵盖以下内容： **动态集合基础**：定义了动态集合的元素结构（关键字、卫星数据、指针属性）以及两大类操作——查询（SEARCH、MINIMUM、MAXIMUM、SUCCESSOR、PREDECESSOR）和修改（INSERT、DELETE）。 **基本数据结构（第10章）**：详细讲解了**栈**（LIFO，PUSH/POP）、**队列**（FIFO，ENQUEUE/DEQUEUE）和**链表**（搜索O(n)、插入O(1)、删除、哨兵简化边界处理）的原理与数组实现。 **散列表（第11章）**：对比直接寻址与散列方式，介绍了除法散列、乘法散列、全域散列三种散列函数，以及链接法和开放寻址法（线性/二次/双重探查）两种冲突解决策略，并简述了O(1)最坏情况查找的完全散列。 **二叉搜索树（第12章）**：阐述BST性质，给出查找、最大/最小值、前驱/后继、插入和删除的算法与Java实现，插入和删除均为O(h)时间复杂度。 **红黑树（第13章）**：定义红黑树的五条性质，通过旋转维护平���；详述插入修复（三种情况）和删除修复（四种情况）的完整流程，保证所有操作在O(lgn)时间内完成，并附Java完整实现。 **数据结构扩张（第14章）**：以红黑树为基础，通过四步法（选基础结构、定附加信息、验证维护、设计新操作）构建**顺序统计树**（支持按秩选取和求秩，O(lgn)）和**区间树**（支持区间重叠查询，O(lgn)）。 **总结**：文章从基础到进阶，层次清晰地覆盖了栈、队列、链表、散列、BST、红黑树及扩张结构，是一份全面的数据结构学习笔记。]]></description><guid isPermaLink="false">/archives/3-shu-ju-jie-gou-algo</guid><dc:creator>yilee</dc:creator><enclosure url="https://blog.yilee.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Foss.yilee.top%2Fimage%2F7252f7d1a5274fd5bcfb9f64b6f0d27c.png&amp;size=m" type="image/jpeg" length="19445"/><category>笔记</category><pubDate>Tue, 4 Apr 2023 14:18:09 GMT</pubDate></item></channel></rss>