
前端技术
文章平均质量分 83
讲解关于前端的技术
Hello.Reader
so far away
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
将 wasm-game-of-life 发布到 npm
在前面的章节中,我们已经成功实现了一个快速、体积小巧的 wasm-game-of-life 包。接下来,我们将介绍如何将这个包发布到 npm 上,从而让更多的开发者能够在他们的项目中轻松引用和使用这份代码。原创 2025-03-31 08:15:00 · 236 阅读 · 0 评论 -
缩小 WebAssembly 二进制体积的优化实践
在构建 WebAssembly 应用时,二进制文件的大小直接影响页面加载速度和用户体验。对于我们的 Game of Life Web 应用来说,二进制越小,用户等待时间就越短。本文将介绍如何通过构建配置调整以及代码优化(包括使用 wasm-snip、wee_alloc 和完全移除分配器依赖)来缩小 .wasm 文件体积。原创 2025-03-31 08:00:00 · 844 阅读 · 0 评论 -
从性能剖析到极致优化:提升 WebAssembly Game of Life 的性能实践
在构建基于 WebAssembly 的 Game of Life 实现过程中,我们不仅要关注算法的正确性,更需要不断优化性能。通过性能剖析,我们发现了一系列影响性能的瓶颈:内存分配、频繁的渲染状态设置以及 2D Canvas 渲染的固有限制。本文将详细介绍如何利用双缓冲技术、差量更新设计以及 WebGL 渲染来解决这些问题,并分享具体的实现思路和代码示例。原创 2025-03-31 07:45:00 · 917 阅读 · 0 评论 -
将 wasm-game-of-life 发布到 npm
在前面的章节中,我们已经成功实现了一个快速、体积小巧的 wasm-game-of-life 包。接下来,我们将介绍如何将这个包发布到 npm 上,从而让更多的开发者能够在他们的项目中轻松引用和使用这份代码。原创 2025-03-29 12:41:29 · 483 阅读 · 0 评论 -
缩小 WebAssembly 二进制体积的优化实践
在构建 WebAssembly 应用时,二进制文件的大小直接影响页面加载速度和用户体验。对于我们的 Game of Life Web 应用来说,二进制越小,用户等待时间就越短。本文将介绍如何通过构建配置调整以及代码优化(包括使用 wasm-snip、wee_alloc 和完全移除分配器依赖)来缩小 .wasm 文件体积。原创 2025-03-29 12:39:58 · 925 阅读 · 0 评论 -
优化 WebAssembly 中的 Game of Life
在构建 WebAssembly 应用时,性能问题往往既令人头疼,又充满挑战。本文将带你了解如何使用时间剖析工具来找出性能瓶颈,并通过一系列优化手段将 Game of Life 实现的性能大幅提升。原创 2025-03-29 11:52:49 · 938 阅读 · 0 评论 -
基于 WebAssembly 的 Game of Life 交互实现
本文介绍如何在基于 WebAssembly 的 Game of Life 实现中增加交互功能。我们将实现以下两个核心功能:- **暂停与恢复**:通过一个按钮控制动画的暂停和继续,便于观察和编辑细胞图案。- **点击切换细胞状态**:允许用户点击画布,动态地将细胞从存活状态切换为死亡状态(或反之)。原创 2025-03-29 11:30:50 · 594 阅读 · 0 评论 -
Midscene.js自然语言驱动的网页自动化全指南
## 关键要点- **Midscene.js** 通过自然语言和 AI 简化网页自动化,适合开发者与非开发者。- 支持 GPT-4o、UI-TARS、Qwen2.5-VL 等模型,提供数据提取、断言、可视化调试等功能。- 适用于社交媒体管理、数据收集、测试验证等场景,当前版本 0.12.7,开源(MIT 许可)。原创 2025-03-23 09:56:22 · 1964 阅读 · 0 评论 -
调试 Rust + WebAssembly 版康威生命游戏
在开发过程中,代码不可避免会遇到错误和意外行为。为了更高效地定位问题,我们需要为 Rust + WebAssembly代码添加日志输出、错误追踪 和 断点调试。原创 2025-03-18 11:51:55 · 960 阅读 · 0 评论 -
Rust + WebAssembly 实现康威生命游戏并进行单元测试
康威生命游戏(Conway’s Game of Life)是一个经典的**元胞自动机(Cellular Automaton)**,它的简单规则可以产生丰富复杂的动态行为。本文将介绍如何使用 **Rust + WebAssembly** 实现康威生命游戏,并进行**单元测试**来确保实现的正确性。原创 2025-03-18 09:21:25 · 766 阅读 · 0 评论 -
Rust + WebAssembly 实现康威生命游戏
完整实现 康威生命游戏(Conway’s Game of Life),并在 Web 页面 上展示运行效果。整个过程包含 Rust + WebAssembly + JavaScript + HTML5 Canvas 的综合运用。原创 2025-03-17 14:24:12 · 501 阅读 · 0 评论 -
康威生命游戏 (Conway‘s Game of Life) 详解
康威生命游戏(Game of Life)是一种 **零玩家游戏**,由数学家 **John Horton Conway** 于 1970 年发明。它是一种**元胞自动机(Cellular Automaton)**,仅需**简单规则**即可产生复杂的动态行为,被认为是计算机科学、人工智能和数学领域的重要研究对象。原创 2025-03-17 14:17:12 · 706 阅读 · 0 评论 -
什么是 WebAssembly?
WebAssembly(wasm)是一种简单的机器模型和可执行格式,具有广泛的规范。它被设计为可移植、紧凑,并能以接近本地代码的速度执行。.wat文本格式(WebAssembly Text,简称 wat):使用 S 表达式,类似于 Lisp 家族的语言,如 Scheme 和 Clojure。.wasm二进制格式:低级别格式,供 wasm 虚拟机直接解析,概念上类似于 ELF 和 Mach-O。原创 2025-03-14 09:00:00 · 762 阅读 · 0 评论 -
为什么选择 Rust 和 WebAssembly?
Rust 没有运行时(runtime),因此生成的 .wasm 代码不会附带额外的垃圾回收器等不必要的负担。相反,开发者可以从性能最敏感的 JavaScript 代码入手,逐步迁移到 Rust,从而立即获得性能提升。例如,它支持 ECMAScript 模块(ESM),可以继续使用熟悉的工具链,如 npm 和 Webpack。Rust 提供了低级控制和可靠的高性能。其动态类型系统和垃圾回收(GC)机制会导致性能波动,甚至在不经意间因偏离 JIT(即时编译器)的最佳路径而产生严重的性能回退。原创 2025-03-14 09:00:00 · 687 阅读 · 0 评论 -
Comfy UI轻量化 UI 框架的核心功能与最佳实践
Comfy UI 是一款轻量级的用户界面(UI)框架,旨在为开发者提供简洁易用的组件库,帮助快速构建现代化的用户界面。它的设计初衷是简化 UI 开发流程,减少繁琐的配置和代码编写,使得开发者能够更加专注于功能实现和用户体验的优化。Comfy UI 结合了流行的设计理念,并且与多种前端框架兼容,能够灵活适应各种应用场景,无论是 Web 应用还是移动端项目。Comfy UI 提供了一套全面而简洁的组件体系,涵盖了从基础 UI 组件到复杂交互组件的方方面面。原创 2024-10-14 13:22:13 · 2026 阅读 · 0 评论 -
react脚手架代理配置
在package.json中追加如下配置。原创 2022-08-24 00:10:18 · 4471 阅读 · 0 评论 -
使用 Photo-Sphere-Viewer 实现 360° 全景图展示
在当今数字化视觉体验不断提升的时代,360° 全景图的应用越来越广泛。无论是在房地产展示、旅游景点预览,还是虚拟现实体验中,全景图都能带来沉浸式的视觉享受。本文将介绍一款强大的 JavaScript 库——Photo-Sphere-Viewer,帮助你在网页上轻松实现 360° 全景图的展示。Photo-Sphere-Viewer 是一个轻量级的 JavaScript 库,专为在网页上展示 360° 全景图而设计。它允许用户在浏览器中与全景图进行互动,提供类似虚拟现实的体验。原创 2024-08-26 09:08:24 · 3460 阅读 · 4 评论 -
AR.js 开发与使用指南
增强现实(AR)技术近年来迅速发展,它通过将虚拟对象叠加在现实世界中,创造出独特的交互体验。AR.js 是一个轻量级的开源库,允许开发者在网页中轻松实现增强现实效果。本文将介绍如何使用 AR.js 进行开发,并通过代码示例展示其基本用法与高级技巧。原创 2024-08-28 18:10:06 · 3996 阅读 · 6 评论 -
Vue3使用vue-office插件实现word预览
我们可以给input绑定一个change事件, 当我们选择了文件, change就会触发返回给我们一个event对象, 我们通过event对象中的属性就可以拿到我们的file对象了。其实并不然, 我们开发中还会遇到另一种情况, 就是通过文件上传的方式, 获取文件的ArrayBuffer或者blob来预览文档。获取到了之后, 我们需要使用FileReader身上的实例方法来读取我们的文件内容。随后, 我们赋值一个响应式数据, 用于我们的word展示。这样, 我们的代码就写完了, 我们看看效果。原创 2024-03-28 14:14:21 · 4469 阅读 · 0 评论 -
Vue3使用mitt实现组件通信
化的方式来构建复杂的应用程序。而在组件化开发过程中,组件之间的通信则是一个不可避免的问题。Vue3 提供了多种组件通信的方式,例如`props`、`emit`、`provide/inject`、`Vuex`等。本文将介绍另一种轻量级的组件通信方式:使用 `mitt` 来实现组件之间的松耦合通信。原创 2024-09-06 09:00:00 · 797 阅读 · 0 评论 -
Tauri 教程之构建现代桌面应用的新选择(一)
在当今快速发展的技术领域,构建跨平台的桌面应用程序已经变得更加普遍和必要。传统的方法通常涉及使用Electron等框架,但随着技术的进步和需求的变化,出现了一些更轻量、更高效的解决方案。其中,Tauri作为一个开源工具包,允许开发者使用现代的Web技术来构建桌面应用,并且具有出色的安全性和性能优势。本教程将详细介绍如何利用Tauri创建和优化桌面应用程序。原创 2024-09-05 09:00:00 · 2430 阅读 · 0 评论 -
使用 Nginx 部署前端 Vue 项目:跨平台详细指南
在前端开发中,Vue.js 是一种备受欢迎的框架,它因其轻量级、易用性和强大的生态系统而受到广泛应用。当完成 Vue 项目的开发后,部署成为了一个关键环节。Nginx 作为高效的 Web 服务器,是部署 Vue 项目的理想选择。本文将详细介绍如何在 Ubuntu、CentOS 和 Windows 操作系统上使用 Nginx 部署 Vue 项目,并包含如何管理 Nginx 服务的完整指南。原创 2024-09-03 09:00:00 · 1945 阅读 · 0 评论 -
Puppeteer前端插件
Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制Chromium或Chrome。Puppeteer默认以headless模式运行,但是可以通过修改配置文件运行“有头”模式。你可以在浏览器中手动执行的绝大多数操作都可以使用 Puppeteer 来完成!生成页面 PDF。抓取 SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。自动提交表单,进行 UI 测试,键盘输入等。创建一个时时更新的自动化测试环境。原创 2024-07-30 13:51:46 · 843 阅读 · 0 评论 -
5个Promise高级使用技巧
常见的面试中都会问及到 promise.then()、Promise.all 或者配合 async/await 使用的方式。所以说,咱们今天就来分享 5个promise的“高级”使用技巧,提高对 promise 的理解,帮大家通过高P面试!但是,对于 await 大家需要知道:当后面的值不是 Promise 对象时,它将会把该值包装在 Promise 对象中。当finally函数的返回值是一个promise时,它会在finally函数之前等待promise解析,然后再返回promise对象。原创 2024-04-09 13:28:17 · 1139 阅读 · 0 评论 -
大批量接口请求的前端优化
在前端开发中,我们经常会遇到需要一次性发送大量接口请求的场景,比如在数据初始化、数据导入等操作中。如果不对这些请求进行合理的优化,可能会导致页面加载缓慢、用户体验下降,甚至引发浏览器崩溃。本文将介绍几种针对大批量接口请求的前端优化方法。大批量接口请求的前端优化是一个复杂而重要的问题。通过合并请求、使用防抖和节流、Web Workers、缓存请求结果以及分页和懒加载等技术,我们可以显著提高应用的性能和用户体验。在实际开发中,需要根据具体场景和需求选择合适的优化策略。原创 2024-04-01 14:04:37 · 4277 阅读 · 0 评论 -
实现浏览器复制文本原始样式到wps或office
本需求是笔者在协助公司前端工程师的一个需求完成的,需求是在Web页面中复制带有样式的文本并期望在WPS或其他富文本编辑器中保持样式,通常需要使用HTML格式进行复制。大多数现代富文本编辑器,包括WPS,都支持从HTML格式的剪切板内容中粘贴并保留样式。其实我们可以发现,编程的变化,包括世界一切事物的发展都是基于基础构建而成。往往是人们把它搞得高深莫测,反而是复杂了事物得发展。希望大家在编程中或者生活其他方面都把一切事物简单化。思考的模式要像太阳一样。我们学习和事物本质的发展,我们可以采用哲学的思考方式。原创 2024-03-26 10:05:41 · 1461 阅读 · 0 评论 -
什么是React属性钻取(Prop Drilling)
在React开发过程中,状态管理是一个绕不开的话题。无论是新手还是有经验的开发者,都会面临如何有效管理组件状态的挑战。React为我们提供了多种状态管理方案,如直接的状态传递(俗称"属性钻取")、Context API、以及像Redux这样的外部状态管理库。每种方案都有其适用场景与优缺点,今天就让我们就来先聊聊什么是“属性钻取”。##三 什么是状态管理(State Management)?状态管理对于任何动态应用而言都是核心且不可避免的一环。原创 2024-03-15 13:30:59 · 1056 阅读 · 0 评论 -
React利用Context API解决属性钻取问题
大家好,今天我们深入探讨了属性钻取的问题,了解到在复杂的React应用中,如何因为多层级组件之间的props传递而导致的开发和维护的困难。属性钻取不仅使得代码难以维护,还可能引起不必要的组件重渲染,影响应用性能。但幸运的是,React为我们提供了强大的解决方案来优化这一问题——Context API。在这篇文章中,深入探讨如何利用Context API有效解决React中的属性钻取问题。原创 2024-03-15 13:02:46 · 1364 阅读 · 0 评论