- 博客(3132)
- 收藏
- 关注
转载 前端关于单点登录的知识
作者:An_an16347原文:https://juejin.im/post/6844903664264413198什么是单点登录单点登录(Single Sign On),简称为 SSO...
2020-08-24 08:32:50
1626
转载 轻松理解JS中的面向对象,顺便搞懂prototype和__proto__
作者:蒋鹏飞链接:https://juejin.im/post/5e50e5b16fb9a07c9a1959af这篇文章主要讲一下JS中面向对象以及 __proto__,ptototyp...
2020-08-23 14:24:28
556
转载 前端模块化:CommonJS,AMD,CMD,ES6 学习
作者 | subwaydown地址 |https://juejin.im/post/6844903576309858318模块化的开发方式可以提高代码复用率,方便进行代码的管理。通常一...
2020-08-22 11:30:00
421
转载 (有趣问答)2019年nodejs凉了吗?凉到什么程度了?
今天在下于知乎上看到一个有趣的问题,叫「2019年nodejs凉了吗?凉到什么程度了?」问题挺耸人听闻的,但其实是一个很普适性的问题,对于大部分语言和框架的使用者来说都值得借鉴。这个问题...
2020-08-21 08:36:14
1285
原创 vue中8种组件通信方式, 值得收藏!
之前写了一篇关于vue面试总结的文章, 有不少网友提出组件之间通信方式还有很多, 这篇文章便是专门总结组件之间通信的vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢?首先我们需要知道在vue中组件之间存在什么样的关系, 才更容易理解他们的通信方式, 就好像过年回家,坐着一屋子的陌生人,相互之间怎么称呼,这时就需要先知道自己和他们...
2019-11-28 16:53:48
4334
3
原创 消息队列Rabbitmq,在Node.js中的应用
为什么写这篇文章 现在的面试要求越来越高了,打开看了看几个 BOSS 招聘 Node.js 全栈开发的,其中都有一条“了解 消息队列,并在项目中应用过”,呜呜呜 后端开发者应该都知道消息队列,但是一些前端开发者可能知道的并不多,但是你们可能好奇抢票,商品秒杀等功能是如何实现的,其实没有多么高大上,看了消息队列就知道了。 文章导图(你能学到)什么是消息队列“消息队列...
2019-11-26 09:05:34
7704
3
原创 Node.js中的执行顺序(微任务与事件循环)
提出问题在理解node.js的异步的时候有一些不懂的地方,使用node.js的开发者一定都知道它是单线程的,异步不阻塞且高并发的一门语言,但是node.js在实现异步的时候,两个异步任务开启了,是就是谁快就谁先完成这么简单,还是说异步任务最后也会有一个先后执行顺序?对于一个单线程的的异步语言它是怎么实现高并发的呢?好接下来我们就带着这两个问题来真正的理解node.js中的异步(微任务与事件循环...
2019-04-28 22:05:50
6423
2
原创 超详细的redis学习(1)-入门篇
什么是Redis基本概念redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库(非关系性数据库)。redis的优势速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)支持丰富数据类型,支持string,list,set,sorted set,hash支持事务,操作都是原子性...
2018-09-12 15:11:01
24950
2
原创 javascript之原型链详解
对象着手在谈原型链之前,先了解对象,万物皆对象。所有引用类型(函数,数组,对象)都拥有proto属性(隐式原型)所有函数拥有prototype属性(显式原型)(仅限函数)原型对象:拥有prototype属性的对象,在定义函数时就被创建prototype与proto两个概念prototype:此属性只有构造函数才有,它指向的是当前构造函数的原型对象。proto:此...
2018-09-07 17:06:41
679
原创 javascript中的闭包这一篇就够了
什么是闭包 维基百科中的概念在计算机科学中,闭包(也称词法闭包或函数闭包)是指一个函数或函数的引用,与一个引用环境绑定在一起,这个引用环境是一个存储该函数每个非局部变量(也叫自由变量)的表。闭包,不同于一般的函数,它允许一个函数在立即词法作用域外调用时,仍可访问非本地变量 学术上闭包是指在 JavaScript 中,内部函数总是可以访问其所在的外部函数中声明的参...
2018-09-06 18:08:48
1037
原创 LayoutParams基本使用
LayoutParams是什么?LayoutParams主要保存了一个View的布局参数,因此可以使用LayoutParams来改变布局参数从而达到View位置的效果,一般在自定义View的时候使用。LayoutParams怎么用?如果父控件是LinearLayout,需要使用LinearLayout.LayoutParams 代码如下:LinearLayout.La...
2018-08-05 23:17:31
9789
原创 回调地狱解决方案之Promise
Node.js异步控制之Promise为什么出现Promise在javascript开发过程中,代码是单线程执行的,同步操作,彼此之间不会等待,这可以说是它的优势,但是也有它的弊端,如一些网络操作,浏览器事件,文件等操作等,都必须异步执行,针对这些情况,起初的操作都是使用回调函数实现。实现方式如下(虚拟代码):function One(callback) { if ...
2018-07-29 15:56:07
1099
原创 async和await的讲解
async和await的讲解声明async函数的几个方法//普通的函数声明async function A(){}//声明一个函数表达式let A=async function(){}//async形式的箭头函数let A=async ()=>{}初识async和awaitasync与await实例应用,基础代码 控制器调用与serv...
2018-07-29 12:29:06
34813
1
原创 开发过程中的系统通知与推送的全面讲解
前言:在我们的软件开发中,系统通知和推送是必不可少的一部分,本篇文章将针对Android端和服务端分别讲解如何完整的实现一个系统通知与推送的功能 ,文章更注重逻辑、思想,不会讲那些基本极光sdk集成内容,如果需要请直接去极光推送官网查看文档。学前准备Android - 了解广播的基本使用,创建广播的几种方式 - ActivityManage和packpageManage的区别...
2018-07-24 10:22:23
5177
原创 解决Gradle:download特别慢或卡主不动的问题
解决Gradle:download特别慢或卡主不动的问题Gradle 在project创建的时候的时候会出现connect refused:connect或者卡在building gradle download https:等情况。 大多数的原因是因为我们Google对我们国内网络的限制: 解决办法:使用阿里云的国内镜像仓库地址,就可以快速的下载需要的文件修改项目根目录下的文件 build.gr
2017-06-10 21:14:34
20637
3
原创 Native与html5交互入门篇
Native与html5交互目前主流的移动端开发是混合开发Hybrid 先说一下什么是Hybrid APP,它指的是半原半Web的混合类App,需要下载安装,看上去类似Native App,但只有很少的UI Web View,它极力打造类似原生的App。 学习Native和html5交互,我们要学两点: 1、怎么把一个html5界面当作控件一样显示在界面中。 2、怎么和html5进行数据交互
2017-06-04 20:16:02
1348
转载 十条经过实战检验的 TypeScript monorepo 约定
如果你也有经历战火、价值连城的经验技巧,欢迎分享 —— 我一定会借鉴(当然也会注明出处)。十条经过实战检验的 TypeScript monorepo 约定 —— 覆盖命名、TS 配置、project references、构建、发布、测试与边界控制 —— 让代码库能够在时间中稳定扩展。使用业务语言(auth、billing、search),而不是技术层(utils、helpers)。这决定了你的 monorepo 究竟是“任何改变都会触发全量构建”,还是“只构建变动部分”。两条命令自动化 release。
2026-01-16 11:59:48
4
转载 Claude Code 算是被我玩明白了
今天的 AI 就像那台蒸汽机,单点效率惊人,但如果没有“体制”、没有“流程”、没有“原生思维”,它永远只是屏幕里的骡子。:权限控制、沙箱隔离、Checkpointing(让 AI “时光倒流”纠错),还有用 MCP 把 AI 连到公司内部系统的硬核操作——这些,才是企业级开发最需要的“安全镣铐”。后来我在 Tony Bai 的课程里看到他的分享,他一句话击中我:“一部分人,会选择主动站上浪尖,学会驾驭这股强大的新力量,成为定义下一个十年开发范式的“冲浪者”。别人都讲 AI 是“魔法”,他偏要拆成“工程”。
2026-01-15 11:57:23
5
转载 前端缓存:最被低估的性能优化技巧
在这篇文章中,我们将拆解前端缓存真正的威力,讲清楚如何正确使用缓存,以及它如何帮你节省带宽、时间、成本,并减少大量用户的挫败感。这也是为什么像 YouTube、Meta、Twitter 这样的网站,在首次访问后几乎是“秒开”。在第一次 API 请求之前,每节省 1ms,都会对用户的感知性能产生指数级提升。这种缓存发生在你的应用内部(React、Vue、Svelte)。不当的缓存策略可能会暴露敏感数据(例如:被公开缓存的鉴权页面)。4. Service Workers —— 浏览器的缓存超能力。
2026-01-14 11:51:56
7
转载 强烈建议尽快搞个软考证!(政策红利)
课程期间1V1答疑解惑,科学定制备考计划,针对每一个基础不同,行业不同的学员,做定制化学习规划,和一对一的指导。在软考领域深耕多年,曾参与电子工业出版社《软考直通车》书籍主审,深入研究软考考试特点、命题方式,升职加薪、跳槽加分,享受落户/购房加分、评职称、入专家库、投标评标、涨退休费、现金补贴。想要提高竞争力、改变现状的人,都有必要马上开始学习。冲刺,很多人在没加入之前,复习毫无头绪,而拿到“公务员、事业单位、央企、国企、民营企业。入手,打基础、练心态,为以后高阶铺路;距离5月份考试时间紧,赶紧学习起来,
2026-01-13 11:54:49
7
转载 从 DevTools 到智能性能代理:用 AI 重塑前端性能分析的新方式
但这篇文章的重点并不是这些指标,而是带你走进幕后,看看作为一个对性能痴迷的工程师,我是如何基于 DevTools 内部机制,打造一个专注性能分析的 AI 智能代理的。于是我提取了它的核心部分,并结合了 DevTools 内部较新的组件 —— 与 “Ask AI” 功能相关的模块,用来辅助我把部分追踪数据解析成可供代理使用的上下文信息(Context Engineering)。它的目标是:借助 AI 理解上下文,探索与界面和数据交互的新方式,同时能自动提取洞察并识别追踪文件中隐藏的问题。
2026-01-12 11:58:58
8
转载 Agent开发必学-8000字长文带你了解下LangChain 生态系统
提供 OpenAI 模型(GPT-3.5、GPT-4、DALL-E、Whisper 等)的具体实现。:不同的 LLM 提供商(OpenAI、Anthropic、Google)都实现相同的接口。是一个用于开发由大语言模型(LLM)驱动的应用程序的框架。:基于图的 Agent 编排框架,用于构建复杂的、有状态的 AI 应用。可以在 LangGraph 的节点中使用 LangChain 的功能。提供基础的 Chain、Agent、Tool 等功能。:对话模型(GPT-4、GPT-3.5-turbo)
2026-01-09 17:43:07
24
转载 浅谈 import.meta.env 和 process.env 的区别
构建工具(Webpack / Vite / Rollup)坑 2:误以为 SSR 可以“顺手用数据库变量”是 Vite(ESM)在构建期注入的前端环境变量。在 Vite + SSR 中,变量的“真实流向”SSR 不会、也不允许,自动帮你“透传”环境变量。构建期 + 运行期可用(但值是构建期确定的)五、Vite 环境变量的正确用法(非常重要)SSR 项目里“正确的分层模型”(工程视角):只放“公开配置”(API 域名、开关)坑 3:把“环境变量”当成“运行时配置”SSR 中最容易踩的 3 个坑(重点)
2026-01-08 12:04:31
40
转载 从失败中重生:一个 AI Agent 前端落地的真实复盘
朋友负责的团队面临的是一个真实的企业痛点:公司有完整的内部设计系统(Design System)和私有前端框架,但这些代码从未被 AI 训练过,通用模型根本无法直接生成符合规范的代码。开发者在自己熟悉的 AI 开发环境里工作,当需要用到设计系统时,Agent 自动调用这个 Skill,生成的代码直接进入项目代码库。开发者在自己熟悉的 AI 开发环境里工作,当需要用到设计系统时,Agent 自动调用这个 Skill,生成的代码直接进入项目代码库。即使这个项目"失败"了,团队获得的认知升级是无价的。
2026-01-07 12:06:25
18
转载 因为淋过雨想给找前端开发工作的人提点建议
其中最直接的原因就是国内的开发岗位供过于求,非常内卷,而八股文就是目前企业最高效的甄别候选人的方式。我们无法改变这一现状,所以只能改变自己,适应目前互联网背八股的现状。等各种前端技术,涉及前端工程师的基础知识、实战技能和高级进阶。(网上动不动就是成千上百道的面试题总结)你要是都能啃下来,平时技术不是太差的话,面试基本上问题就不会太大。那么借此机会,也为了更好的助力广大程序员朋友面试,小编今天就这里给大家分享一份阿里最新发布前端面试核心讲!程序员面试背八股,可以说是现在互联网开发岗招聘不可逆的形式了,
2026-01-06 10:11:13
14
转载 公司 React 应用感觉很慢,我把没必要的重复渲染砍掉了 40%!
React DevTools 里的 Profiler 很好用,它可以记录你在应用中的交互,告诉你哪些组件重渲染了、为什么重渲染、用了多长时间。ahooks 的 useMemoizedFn 始终返回“稳定的函数引用”,同时内部能拿到最新的闭包值,避免“陈旧闭包”问题与不必要的重渲染。这就成了我优化的切入点。问题:只要某个 Context 的值变化,所有消费它的组件都会重渲染,即便它只关心其中未变的那一小部分数据。一个很常见的问题是:父组件重渲染时,子组件也跟着重渲染,哪怕它自己的 props 并没有变化。
2026-01-05 11:50:04
12
转载 写Tailwind CSS像在写屎山?这锅该不该它背
我上次在群里吐槽 Tailwind,被几个大佬围攻了:“现在还在写传统 CSS 的怕不是还在用 jQuery?” 我看了半天说:“一个卡片,会动,能响应式,深色模式适配了……作为一个前端搬砖工,我从 Nodejs 到 React 再到 Vue 都踩过一遍坑,今天就跟大伙儿聊聊这个让我又爱又恨的 Tailwind。:产品经理站我身后:“这里改个间距,那里调个颜色,这个按钮 hover 效果换一下……用不用 Tailwind,其实跟你用什么技术关系不大,关键看你怎么用。所以,别吵了,赶紧去写代码吧。
2026-01-04 12:01:25
25
转载 No-Vary-Search:用一个新 HTTP 头拯救你的缓存性能!
更棒的是,即使源服务器没发送该响应头,CDN 仍然可以使用自己的规则来识别并忽略特定参数,而如果浏览器也支持 No-Vary-Search,那么两者还能协同优化缓存逻辑。探讨了 URL 参数对网页性能的负面影响,特别是如何通过新的 HTTP 响应头 No-Vary-Search 来解决因 URL 参数导致的缓存问题,从而提升网页性能和用户体验。如果参数不同,那仍然是不同的页面。这样的查询参数(也叫 “URL 参数” 或 “搜索参数”)其实并不会影响页面的内容,而是用来做数据分析或流量追踪的。
2025-12-31 11:51:40
23
转载 救火:一场递归树的性能突围战!
对于 几千条数据,现在的方案已经够用了,再上虚拟树就是“大炮打蚊子”,没必要增加维护成本。比如财务部和研发部是兄弟节点,当你点击展开“财务部”的子节点,之前点开的“研发部”会自动收起。最后,老王回来后,我必须得请他吃顿好的——毕竟没有他这代码,我也没机会写这篇几千字的复盘文章,更没机会在掘金骗大家的赞(手动狗头)。客户之前反馈“关闭弹窗也卡”,是因为同事老王的代码让组件一开始加载了几千个节点,内存中就堆积了几千个复杂的组件实例。下次再打开时,因为 DOM 都在,直接恢复透明度即可,实现了真正的“秒开”。
2025-12-30 12:08:15
41
转载 浅谈 AI 搜索前端打字机效果的实现方案演进
虽然我们不能准确定位,但是只要能够使当前打印到页面上的字符比上一次的字符多,就可以满足诉求了。之前版本在每次接收到服务端下发的markdown文本时,都会做一次转换成html的操作,如果多次响应之间的间隔时间很短,则会出现略微卡顿的现象,因此这里转换为html时再增加一个防抖功能,可以很有效的避免卡顿。要实现打字正文中穿插卡片的效果,首先需要定义好返回的数据结构,它需要具备可扩展,方便解析,兼容markdown等特性,所以使用html标签是一种比较合适的方式,例如要展示一个应用卡片,可以下发如下所示数据。
2025-12-25 11:51:11
28
转载 一种新HTML页面转换成 PDF 技术方案
本文将深入讲解如何使用 snapdom 和 jsPDF 实现高质量的 HTML 转 PDF 功能,并通过一个完整的消息列表导出案例,带你掌握这套方案的核心技术。jsPDF 是最流行的 JavaScript PDF 生成库,支持在浏览器端直接创建 PDF 文件。案例,讲解如何使用 snapdom + jsPDF 实现 HTML 转 PDF。是强大的 PDF 生成库,支持 A4 纸张、压缩等特性。是整个方案的核心难点,需要精确计算像素与毫米的转换。导出的 PDF 是否足够清晰,尤其在打印时?
2025-12-24 12:20:18
39
转载 CSS if() 函数上线啦!
原文地址:https://medium.com/@karstenbiedermann/the-css-if-function-has-arrived-152115ab2115。多年来,我们一直依赖各种变通方式:用 JavaScript 切换 class、用 CSS 预处理器写 mixin,或者写满屏的媒体查询。函数终结了这些做法,它把条件逻辑直接带进了 CSS —— 优雅、高性能且完全声明式。的值——完全符合编程语言的直觉,只是现在是在纯 CSS 中实现。更深度的容器查询整合:更强的上下文感知能力。
2025-12-23 11:51:09
20
转载 我写了一个超级简单的浏览器插件Vue开发模板
这里是JustHappy🚀🚀,一时兴起想开发一个浏览器插件,但是找来找去发现在Vue生态下好像没有一个超轻的简单的模板或者脚手架,看了一圈感觉antFu大佬的vitesse-webext还不错,但是感觉还不够轻,于是我打算手撸仿写一个简单版本。如果这对你有帮助,哈哈求个star✨,模板大概率还有很多不足,欢迎大家提交issue、pr等,或者单纯骚扰我😜。在开发模式下,后台脚本并不会直接运行正式的 background 逻辑,而是先接入一个开发专用的脚本。点击“加载已解压的扩展程序”,选择项目根目录下的
2025-12-22 11:50:48
28
转载 性能暴涨 3 倍!Prisma 7 颠覆性更新:放弃 Rust 拥抱 TypeScript!
之前的 Prisma Client 虽然核心是用 Rust 写的,但它需要和你的 Node.js/TypeScript 应用进行通信。在前端,“用 Rust 重写一切” 似乎已经成为了提升性能的黄金法则。Prisma 团队在博客中坦言,虽然 Rust 以高性能著称,但在 Prisma Client 的特定场景下,它反而成了瓶颈。:去掉了 JS 到 Rust 的通信层,现在的查询直接在 JS 运行时中处理,性能直接起飞。除了性能,Prisma 7 在开发体验上也听取了社区多年的吐槽,做出了重大改进。
2025-12-19 11:50:40
67
转载 大部分人都错了!这才是chrome插件多脚本通信的正确姿势
虽然内容脚本和页面脚本的执行环境是隔离开的,互相访问不到对方的变量,但它们可以一起操作和共享页面上的 DOM(比如 document.body),所以内容脚本能帮你改页面样式、加按钮、弹提示,但没法直接拿到页面里的 JS 变量。前面说过,页面的 JS 环境和内容脚本的 JS 环境是互相隔离的,彼此访问不到对方的变量和方法,但它们共享同一个 DOM 树。:运行我们平时所装的浏览器插件,我们装的不同的插件都会分配到不同的插件进程中,互不干扰,谁家插件出了问题,最多自己崩,不会影响到其他插件和页面的运行。
2025-12-18 11:59:10
55
转载 可能是你极易忽略的Nginx知识点
其实这个口诀我也记不住,我也不想记,枯燥有乏味,大部分情况都是到问题了, 直接问 AI,或者让 Agent 直接给我改 nginx.conf 文件,几秒钟的事,一遍不行, 多改几遍。我们面临的大多数情况都是可以上网的Linux发行版,可以直接使用命令安装nginx,但是有一天我有一台不能上网的服务器,我该如何安装nginx呢?其实,我不是很推荐这中配置写法,当然这个配置方法确实很简洁,但是对不熟悉 nginx 的同学来说,会造成很大的困惑。两个配置都匹配到了,那么这种情况下,nginx 会选择哪个配置呢?
2025-12-16 11:50:24
34
转载 为什么95%的前端开发人员在系统设计面试中失败
面试官会抛出一些看似简单的问题:“设计一个类似 Facebook 的 News Feed”、“构建一个可扩展的 Chat 应用”、“创建一个电商网站架构”或“设计一个实时协同编辑器”。越来越多的组织意识到,高级前端不仅要会写代码,还必须能做架构决策、预测可扩展性问题,并设计支持业务增长的系统。拥有系统设计能力的高级前端,薪资通常是只会实现功能的同行的两倍。要在系统设计面试和高级岗位中表现出色,你需要从组件视角提升到完整用户体验的视角,整体思考数据流、性能优化、可扩展性和用户体验。
2025-12-15 12:21:21
37
转载 突发!软考空前大利好!恭喜所有程序员!
升职加薪、跳槽加分,享受落户/购房加分、评职称、入专家库、投标评标、涨退休费、现金补贴。......无论你是否有软考基础,都能快速掌握理论要点和案例实操,高效备考一次过关!从25年考试内容看,对于AI大模型、嵌入式等新技术考察会越来越多,范围越来越广,无论你是二/三战、还是初次备考26年的考生,一定不能错过这个学习群!想顺利通关,自学已经不是明智之举,建议抓紧入群,报名本期。课程开班58期,已为20000+学员服务,口碑爆棚,从。的最佳渠道,选对报考科目,更是如虎添翼!
2025-12-13 11:40:56
22
转载 大多数开发者都错误地使用了Prettier
真正重要的是理解 Prettier 如何融入你的工作流,它如何与 ESLint 协作,以及它如何影响团队的代码一致性。✅ 现在 ESLint 会使用 Prettier 的格式规则,并把精力集中在真正的问题上(未使用的变量、未定义的 import 等)。真正的价值不是更漂亮的代码,而是更快的 Code Review、更少争论、更高协作效率。当你正确使用 Prettier,它就不再只是“格式化工具”,而是开发文化的一部分。现在你的格式是明确的、可控的、可预期的,团队成员打开项目也不会产生格式差异。
2025-12-12 12:11:50
23
转载 从崩溃到优雅:Node.js 错误处理的正确姿势
因此,在未从错误中恢复的情况下尝试正常恢复被认为是不安全的,并可能导致进一步的问题,例如内存泄漏和挂起的套接字。关于 Node.js 错误处理的全面指南,介绍了 Node.js 中错误的定义、传递错误的四种常见模式(异常、错误优先回调、Promise 拒绝和事件发射器),以及如何通过扩展 Error 对象来创建自定义错误类。当错误发生的函数在调用栈的较底层,以至于没有足够的信息直接处理该错误时,这通常是解决错误的正确方法。类或通用的错误对象,往往不足以表达各种不同类型的错误,尤其是那些意料之外的错误。
2025-12-11 11:58:22
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅