近期文章
在 AI 时代找寻舞台:我的前端半年回顾与未来规划
作者从事前端开发半年,指出AI正深刻改变行业,开发流程已广泛采用AI工具提升效率,并出现可视化开发网站。他因绩效被打低分而感到不解和低落,反思这可能与所在项目边缘化有关,并认为应追求市场认可的价值。 目前工作需求不足,作者渴望更大的平台发挥能力,并观察到国外开发者生态的活跃。他计划利用边缘计算服务创建个人项目。作者计划2026年初寻求新工作,因当前工作技术成长缓慢,并思考AI时代所需的面试技能。生活上,他希望在大城市与女友过上幸福生活。在开销方面,他分享了工作半年来的财务状况,发现存款不多,意识到未来生活开销巨大,需继续努力。
>阅读全文
CommonJS 和 ES Modules究竟有啥区别?
文章探讨了JavaScript模块化演进,从传统脚本标签的弊端引出模块化需求。CommonJS作为Node.js早期标准,存在同步加载、不利于静态分析等局限。ES Modules作为新一代标准,支持异步加载和静态分析,带来Tree Shaking、代码分割、类型检查等优化。文章指出,当前npm包仍面临CommonJS与ESM的兼容性挑战,两者并存且存在争议。
>阅读全文
Mitt实现与应用
本文通过购物车组件通信的实例,详细介绍了如何使用事件总线(Event Bus)实现组件间的解耦通信。文章分别展示了在Vue和React项目中,如何利用`mitt`库创建并使用事件总线,实现商品列表、购物车及导航栏组件间的数据传递和操作同步,如添加/移除商品、更新数量等。 此外,文章深入解析了`mitt`事件发射器的核心实现原理,包括事件类型定义、`on`、`off`、`emit`方法的具体逻辑,以及其基于`Map`存储事件和处理器的特点。 最后,文章对比了事件总线与全局状态管理库(如Redux)的区别,强调事件总线主要用于解耦通信和发布/订阅模式,而全局状态管理则侧重于中心化、持久化的应用状态管理,两者可协同使用。
>阅读全文揭秘移动端像素问题
文章探讨移动端应用如何适配不同尺寸手机屏幕。核心概念包括物理像素、逻辑像素(如CSS像素、Android的DP)和设备像素比(DPR)。物理像素是设备固定像素点,逻辑像素是显示内容使用的抽象单位。DPR(物理像素/逻辑像素)用于确保内容在不同设备上显示尺寸一致。Android的DP(密度无关像素)结合DPI(每英寸像素数)实现屏幕适配,以160dpi为基准,使内容在不同像素密度的设备上保持相对大小。
>阅读全文
如何实现跨域
跨域指协议、域名、端口任一不同。`<img>`、`<link>`、`<script>`标签可跨域。解决跨域的常见方法有:利用`<script>`标签的JSONP(仅GET);后端设置`Access-Control-Allow-Origin`的CORS;用于窗口通信的postMessage();不受同源策略限制的WebSocket;以及服务器代理转发(如Nginx反向代理)。
>阅读全文
useContext结合useReducer管理状态
本文介绍了如何利用React的`useReducer`和`useContext`管理复杂状态,以替代`useState`。文章通过四个步骤详细阐述:首先创建两个Context(一个用于状态,一个用于dispatch函数);其次在顶层组件中将`useReducer`返回的状态和dispatch函数放入Context提供给子组件;然后子组件可直接使用`useContext`获取状态和修改函数,无需层层传递;最后推荐将reducer逻辑和Context提供者封装成独立的`TasksProvider`组件,实现状态逻辑的集中管理和模块化,从而提升代码可维护性。
>阅读全文