- 博客(49)
- 收藏
- 关注
原创 浏览器AI对话插件开发【开源】
摘要: browser-ai-chat 是一款基于 WXT + Vue 3 + Pinia 构建的浏览器 AI 对话插件,支持多模型交互、深度思考模式和流式响应。主要特性包括:Markdown/代码高亮/KaTeX 公式渲染、可拖拽悬浮按钮、自定义快捷键和主题色。插件采用 Shadow DOM 实现样式隔离,支持本地数据持久化,并提供多会话管理、图片附件上传等功能。安装方式为下载 GitHub Releases 的压缩包并通过开发者模式加载,支持 Chrome/Edge/Firefox 等主流浏览器。项目采
2026-05-17 15:11:40
389
原创 UniApp 原生插件开发完整指南
UniApp原生插件开发指南摘要:本文详细介绍了UniApp原生插件开发全流程,包括环境配置(Android Studio、JDK17+、Gradle8.12+)、项目结构说明、模块创建步骤(目录结构、build.gradle配置、AndroidManifest编写)、功能开发要点(继承UniModule类、@UniJSMethod注解使用、同步/异步方法实现)以及模块集成方法。重点讲解了如何开发兼容64位架构的原生插件,提供代码示例和最佳实践,帮助开发者快速掌握UniApp原生插件开发技能。
2026-04-23 17:46:35
502
原创 Kotlin DSL 风格编程详解
Kotlin DSL(领域特定语言)风格编程详解:DSL是一种专注于特定领域的声明式编程方式,强调"做什么"而非"怎么做"。文章通过生活场景类比和代码对比,展示了DSL的优势:1)创建对象时,DSL使用闭包语法实现属性设置;2)条件判断时,DSL构建器提供更直观的语法;3)构建列表时,DSL提供更简洁的初始化方式。相比传统命令式编程,DSL风格使代码更接近自然语言表达,提高了可读性和维护性。
2026-04-08 16:08:35
429
原创 协程(入门)
本文全面介绍Kotlin协程系统,从基础概念到高级应用。首先阐述协程解决的问题:线程模型痛点、回调地狱、生命周期管理等。然后详细讲解核心概念,包括挂起函数、作用域、Dispatcher等,并配以代码示例说明。文章深入探讨协程并发组合、取消机制、异常处理等关键主题,并介绍Flow流式编程及其在Android架构中的应用。最后提供高级主题和完整业务案例,帮助开发者从入门到精通掌握Kotlin协程。
2026-03-23 16:53:19
359
原创 Kotlin 与 Java 语法差异
本文对比了Kotlin与Java在Android开发中的语法差异,主要涵盖基础语法、并发编程和UI开发等方面。在基础语法部分,Kotlin提供了更简洁的变量声明(val/var)、类型推断、空安全机制(?.)、数据类(data class)和默认参数等特性,而Java需要更多样板代码。在并发处理上,Kotlin使用协程(suspend)简化异步编程,Java则依赖CompletableFuture。此外,Kotlin的密封类(sealed class)为状态建模提供了更优雅的解决方案。这些差异体现了Kotl
2026-03-22 08:26:14
481
原创 Jetpack Compose 副作用 API 详解
Jetpack Compose 提供了多种副作用 API 来处理 Composable 函数外的状态变化。核心 API 包括: LaunchedEffect - 执行挂起函数,在 key 改变时重启,自动取消协程 rememberCoroutineScope - 获取与 Composable 生命周期绑定的协程作用域 rememberUpdatedState - 引用最新值而不重启效果 DisposableEffect - 需要清理资源的副作用,必须提供 onDispose SideEffect - 每次重
2026-03-04 13:40:49
408
原创 Compose Destinations 2.x API 完整指南
Compose Destinations 2.x API 指南摘要(148字): 本文全面介绍Compose Destinations 2.3.0导航框架的核心功能。主要内容包括:1)使用@Destination注解声明导航目标;2)通过DestinationsNavigator实现类型安全导航;3)支持基本类型和复杂对象(Parcelable/Serializable)的参数传递;4)结果返回机制;5)深层链接配置;6)自定义过渡动画;7)嵌套导航图管理;8)底部导航集成;9)依赖注入支持。重点展示了2.
2026-02-08 17:13:10
950
原创 Jetpack Compose 动画完全指南
Jetpack Compose 动画指南摘要: 本文全面介绍了Jetpack Compose动画系统,包含10个核心章节。主要内容包括: 动画概述:阐述了Compose动画的优势,如声明式API、类型安全和自动优化 动画分类:按实现方式分为基础/高级API、布局动画和过渡动画;按类型分为值动画、可见性动画等;按场景分为进入/退出、状态变化等动画 基础API详解: animate*AsState系列:最常用API,支持Float/Dp/Color/Int/Offset等类型动画 Animatable:提供更灵
2026-01-31 14:32:45
622
原创 Jetpack Compose Surface 完全指南
Jetpack Compose的Surface组件是Material Design的核心容器,提供UI元素的"表面"语义。它自动处理颜色对比、高度层次和形状边框,确保内容清晰可见且符合设计规范。Surface区别于Box和Card的关键在于其内置Material语义,包括自动计算内容颜色、支持高度阴影效果和点击涟漪。开发者可通过参数控制其外观,如shape定义形状、color设置背景、tonalElevation调整颜色深浅。Surface最适合需要Material设计语义的场景,而纯布
2026-01-31 14:07:06
1022
原创 Compose 状态管理完整指南
本文全面介绍了Jetpack Compose中的状态管理机制,包括核心概念和常用API。主要内容包括: 状态概述:解释了什么是状态以及重组机制,状态改变会触发UI自动更新 核心状态API: remember:在重组期间保留值 mutableStateOf:创建可观察的可变状态 derivedStateOf:从其他状态派生新状态 rememberSaveable:配置更改后保留状态 rememberUpdatedState:捕获最新值 produceState:将非Compose状态转换为State 使用场景
2026-01-29 20:17:11
890
原创 Compose vs Activity 生命周期
Compose 生命周期指南:与传统View系统不同,Compose的生命周期基于组合概念,分为进入组合(首次执行)、重组(状态变化时重新执行)和离开组合(不再显示)三个阶段。通过LaunchedEffect、DisposableEffect等API可实现与Activity生命周期类似的功能。文章详细对比了Compose与Activity生命周期的对应关系,并提供了常见场景的代码示例,包括页面初始化、数据监听和参数变化处理等场景。Compose的智能重组机制使其只更新受影响的部分,开发者需避免在重组中执行副
2026-01-29 12:31:40
530
原创 Android 响应式数据对比完全指南
Android响应式数据对比指南:LiveData vs StateFlow vs SharedFlow LiveData:生命周期感知、自动主线程切换,适合简单UI状态管理,但操作符有限且测试困难。StateFlow:必须初始值、自动去重、丰富操作符,适合全局状态管理。SharedFlow:可无初始值、不去重,适合事件传递。LiveData推荐用于传统MVVM,StateFlow/SharedFlow推荐用于复杂数据流处理。迁移时需注意StateFlow需手动处理生命周期,SharedFlow适合一次性事
2026-01-26 14:57:13
663
原创 vite打包后自动压缩代码插件vite-plugin-zip-zwf
vite-plugin-zip-zwf 简介 一个用于Vite的压缩插件,能在打包后自动生成zip压缩包,方便手动部署到Linux服务器。该插件支持自定义输入/输出目录、压缩包名称、版本控制等功能。 主要特性 自动压缩打包后的dist目录 可配置输出路径和文件名 支持版本号控制 提供日志输出选项 使用方式 安装后简单配置即可集成到Vite项目中,支持多种参数定制压缩行为。 GitHub仓库
2025-09-13 20:31:55
266
原创 idea技巧
查看最近修改的代码快捷键:ctrl+shift+e。Ctrl + H(Hierarhcy层级)查看最近修改的文件快捷键:ctrl+e。
2025-03-09 23:23:28
1226
原创 spring生态的学习
PostConstruct:在依赖注入完成后执行,用于初始化操作。方法签名:@PostConstruct 标记的方法必须是无参的,且返回类型为 void。执行顺序:如果有多个 @PostConstruct 方法,执行顺序不确定,应避免依赖执行顺序。异常处理:如果 @PostConstruct 方法抛出异常,Spring 容器将无法成功初始化 Bean。
2025-02-09 00:22:17
244
原创 java未解密模块
异常处理:如果 @PostConstruct 方法抛出异常,Spring 容器将无法成功初始化 Bean。执行顺序:如果有多个 @PostConstruct 方法,执行顺序不确定,应避免依赖执行顺序。方法签名:@PostConstruct 标记的方法必须是无参的,且返回类型为 void。@PostConstruct:在依赖注入完成后执行,用于初始化操作。
2025-02-09 00:22:01
262
原创 java学习笔记
指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。事务A读取了事务B更新的数据,事务B未提交并回滚数据,那么A读取到的数据是脏数据。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。
2025-02-07 23:19:56
832
原创 js面试准备
以前是叫宏队列、微队列,微队列的优先级高于宏任务,根据最新的w3c给出的说明,不再有宏队列的叫法了,以为简单的宏队列已经不能满足当下复杂的业务了,于是有了延时队列、交互队列、微队列等,当一个延时函数先会由计时线程处理,然后放到延时队列里面,然后主线程根据队列的优先级。函数调用前创建的一个对象,用来保存函数内部的执行环境,也叫执行期上下文,函数执行完后销毁,函数里面定义的变量,将会作为AO对象的属性,这也就解释了局部变量的概念;比如:浏览器进程负责顶部的窗口标签栏的渲染,交互,不包括页面的内容;
2023-04-07 10:40:46
1045
原创 前端脚手架z-start
是一个使用commander、inquirer、chalk等技术实现的一个`本地脚手架`,让你不需要剥洋葱一样,一层一层的找目录,可以在任何目录打开你的项目
2023-03-17 16:16:46
614
原创 zCrud组件(vue2封装增删查改到一个组件)
vue使用elementUI框架封装新增、查询、编辑、删除、批量删除、分页等功能与一体的组件,并支持自定义组件;
2023-03-14 15:31:14
1276
原创 vue3图片懒加载指令(typescript)
图片懒加载能减少服务器压力,比如一个前台展示网站,里面包含很多图片,如某宝它有很多商品的图片,但是用户不一定会浏览完整的网页,用户可能从某个分类的入口进入到了别的页面,那么就会造成加载了这么多的图片,压根没人看的境地
2023-02-26 00:37:10
454
原创 Nuxt3+Typescript+Unocss开源官网项目
这是一个开源的SSR服务端渲染响应式项目,可自己稍微改造成官网或者个人网站nuxt3+ts开源项目提示:项目中的公司、文案描述都是胡编乱造的,纯属虚构。
2023-02-23 10:28:28
2158
转载 总结前端换肤的 N 种方案
最近在做网站换肤的需求,也就是主题切换。那么如何切换主题的颜色呢?以下是网站换肤的实现以及基于换肤拓展的一些方案分享给大家,希望大家在做类似需求的时候能够有些参考
2023-02-07 11:10:44
913
原创 免费的在线画图编辑器excalidraw
excalidraw是一款专门用于画图的。github在已经有41k+的Star。的在线编辑器,可用于梳理逻辑的草图。
2023-02-06 22:45:20
1154
原创 内务穿透(远程办公,部署公网网站到你家里电脑)
1.可以在家里访问公司的局域网2.可以在公司访问家里的局域网3.如果你的服务器性能不够,你也可以通过内务穿透部署到你家里的电脑,然后通过公网可以访问你家里所部署的网站;4.疫情时代,居家办公时,可以用来前后端联调;
2023-02-06 16:17:55
459
原创 DocumentFragment
对于document.createDocumentFragment(),所有浏览器都支持(包括IE6),而构造函数方法就不是所有浏览器都有效了(IE没有实现该方法)。通常的用例是创建文档片段,将元素附加到文档片段,然后将文档片段附加到 DOM 树。在 DOM 树中,文档片段被其所有的子元素所代替。它被作为一个轻量版的 Document 使用,就像标准的 document 一样,存储由节点(nodes)组成的文档结构。与 document 相比,最大的区别是它不是真实 DOM 树的一部分,
2023-02-02 10:00:19
2055
原创 前端规范(四)之husky+lint-staged+commitizen+commitlint
如果按照之前的章节所论述的那样,为了适用ESlint、Prettier、Stylelint我们需要执行下面的很多的命令,然而我们可以在husky的pre-commit钩子中自动帮我们执行下面的命令,也就是说我们只管提交代码。此后执行npx cz,就相当于执行git commit,不过npx cz会以命令行的方式让我们填写commit的信息,如下图所示,以交互的形式。自动触发命令,可以有效避免漏执行命令的出现,让我们的开发更为的规范,同时适用commitlint让我们的git commit的内容更为规范。
2023-01-31 18:50:00
4834
原创 前端规范(二)之Prettier
Prettier规范的是代码偏向于排版层面上的风格,也就是增加代码的阅读性层面上的;ESlint,它规范的是代码偏向语法层面上的风格。比如说不能使用console,箭头函数参数必须包裹在括号中等等;这两个工具的侧重点不同,从目前较多开源项目中开,绝大多数采用eslint+prettier来归档代码;
2023-01-31 14:15:32
4332
原创 前端规范(一)之ESlint以及@antfu/eslint-config
本文将记录工作中eslint相关的内容,常用的配置、插件等;团队项目中规范尤其重要,否则合并代码的时候会有大量冲突出现;通过eslint和vscode工作区的setting.json设置能有效的使团队的规范保持一致;
2023-01-30 17:57:33
19620
1
原创 推荐个快速构建本地环境的工具(小皮面板)
近期在学习后端java,后端涉及到mysql、redis、有时候后端启动了多个端口还会用到nginx反向代理到不同的后端端口,这个软件简直就是一个神器,能基本满足你的环境需求;同时也希望后续小皮能把rabbitmq、ssh终端管理器等这些也加入到小皮的应用商城里面去。
2023-01-30 12:00:31
1691
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅