奇舞精选

《奇舞精选》是由奇舞团维护的前端技术公众号。除周五外,每天向大家推荐一篇前端相关技术文章,每周五向大家推送汇总周刊内容。

一个Level 0富文本编辑器的进化历程
富文本编辑器是我们在生活中常用到的编辑工具,本文将为大家介绍富文本编辑器技术成长的历程,在最后会带大家利用document.execCommand实现一个简单的传统编辑器。
更轻巧的状态管理工具——Hookstate
作为 React 开发人员,管理中型应用程序的状态可能很困难。在开发小型应用程序时,将状态从一个组件传递到另一个组件相对简单。当应用程序的规模发生变化时,就会变得不方便,因为你需要无层级关系组件状态的互相访问支持。
Web 端 RTL 适配实践
在业务全球化的进程中,我们会面对产品本地化的需求。在中东地区,许多国家使用阿拉伯语、希伯来语等语言,其书写和阅读习惯是从右向左(简称 RTL),与我们日常使用的中、英文环境中的从左向右(简称 LTR)阅读习惯相反。为了确保我们的产品在 RTL 语言用户中依然能够提供良好的体验,需要进行 RTL 适配。
小学生都开始学 Python 了!
Python 被认为是人工智能、机器学习的首选语言。因为人工智能要求机器能自主学习成长,机器要会学习,首先要积累大量的数据,然后运用机器学习算法如线性回归、决策树、神经网络等,让机器能从大量的数据中自主实现学习。Python 简洁易用的特点,以及在数据处理方面的强悍能力,使得目前市面上大部分人工智能的代码,都由 Python 来实现。
使用React Context的一些优化建议
Context 提供了一个无需为每层组件手动添加 props,就能在组件树间进行数据传递的方法。
Redux Toolkit
阅读本文章前,需要先了解下 redux 的基本概念与用法,Redux Toolkit 是建立在 Redux 基础之上的工具包,因此需要对 Redux 的基本概念有一定的了解,包括 Action、Reducer、Store、Middleware 等。理解 Redux 的工作原理和数据流程有助于更好地理解和使用 Redux Toolkit。
Vue项目构建优化
在开发大型前端项目时,往往是一个需求对应一个分支,当完成需求后,就需要将代码打包、部署。代码通常需要部署到多个环境中,这些环境包括:日常环境、测试环境、回归环境和生产环境。回归环境用于在发布前进行测试,生产环境是用户访问的版本。随着时间的推移,项目中会不断引入许多新的依赖(如第三方库、插件等)和图片资源,代码数量也会逐渐增多,从而导致构建项目更加耗时,这也意味着部署项目需要消耗更长的时间。
JavaScript中的设计模式
JavaScript设计模式是编程世界的智慧结晶,提供了解决常见问题的优秀方案。无论你是初学者还是经验丰富的开发者,掌握这些模式都能让你的代码更清晰、更灵活。本文将为你介绍一些常见的设计模式,帮助你提高代码质量,构建更可维护的应用。让我们一起深入了解这些设计模式的精妙之处吧!
轻量级、可插拔、OOP 式图形编辑器开发引擎
图形编辑器在多个行业中扮演着至关重要的角色,其应用范围广泛且影响深远。以 Figma 为典范的 Web 图形设计工具,为人们提供了一个自由发挥创造力的平台,随着 Web 平台的发展壮大,技术如 WebGL 和 WebGPU 的涌现与成熟,为传统的 OpenGL 图形编辑系统迁移到 Web 环境带来了新的可能性,极大地拓展了创新的边界。
几个好玩好用的AI站点
ai能力在去年一年飞速增长,各种AI产品如雨后春笋般冒出来,在各种垂直领域上似乎都有AI的身影出现,今天就总结几款好玩的场景,看大家工作生活中是否会用到。
不同打包工具下的环境变量配置方式对比
在现代的JavaScript应用程序开发中,环境变量的配置是至关重要的。不同的应用场景和部署环境可能需要不同的配置,例如开发、测试和生产环境。最常见的需求是根据不同的环境,配置如是否开启sourceMap、API请求地址的切换、是否压缩代码等逻辑。本文主要介绍利用不同的工具:Webpack、Vite、Rollup打包项目的环境变量的配置方式。
React 中条件渲染的 N 种方法
条件渲染在React开发中非常重要的功能,它允许开发人员根据条件控制渲染的内容,在创建动态和交互式用户界面方面发挥着至关重要的作用,本文总结了常用的的条件渲染方法。
了解前端新框架-nue.js
前端开发者 Tero Piirajinen 推出了一个名为 Nue.js 的极简化前端开发工具,并迅速引发社区讨论。Piirajinen 在 Hacker News 上表示,它是 React、Vue、Next.js、Vite、Svelte 和 Astro 的替代品。
探究Base64在前端的原理和应用
Base64在前端开发中的普遍应用。本文将探讨Base64编码的原理以及在前端项目中应用的实际应用。
前端“量子纠缠”:multipleWindow3dScene 来了
在量子力学里,当几个粒子在彼此相互作用后,由于各个粒子所拥有的特性已综合成为整体性质,无法单独描述各个粒子的性质,只能描述整体系统的性质,则称这现象为量子缠结或量子纠缠。量子纠缠是一种奇怪的量子力学现象,处于纠缠态的两个量子不论相距多远都存在一种关联,其中一个量子状态发生改变,另一个的状态会瞬时发生相应改变。
AI模特换装的前端实现
随着AI的火热发展,涌现了一些AI模特换装的前端工具(比如weshop网站),他们是怎么实现的呢?使用了什么技术呢?下文我们就来探索一下其实现原理。
[译]装饰器的10年历史
"装饰器是一种结构设计模式,通过将对象置于包含行为的特殊包装器对象中,可以将新的行为附加到对象上"。© https://refactoring.guru/design-patterns/decorator
[译]JavaScript中Base64编码字符串的细节
Base64编码和解码是一种常见的将二进制内容转换为适合Web的文本的形式。它通常用于data URLs,比如内嵌图片。当你在JavaScript中对字符串应用base64编码和解码时会发生什么?这篇文章探讨了这些细节和需要避免的常见陷阱。
如何使用 Github Action 管理 Issue
很多小伙伴打开 github 上的仓库都只使用Code查看代码,或者只是把 github 当成一个代码仓库,但是 github 还提供了很多好用的功能。其中,GitHub Action就是一个很好用的功能,本文将通过几个管理Issue的示例带大家了解GitHub Action。
三种虚拟列表原理与实现
工作中一直有接触大量数据渲染的业务,使用react-window多之又多,所以对虚拟列表有了些浅显的理解。今天,我们就照着react-window的使用方式来实现三种虚拟列表。
一个易用的消息订阅发布系统-Pubsub.js
本文介绍的 pubsub.js 就是一个非常实用的消息订阅发布库。它具有使用简单、性能高效、支持多平台等优点,可以很好地满足各种需求。
[译]CSS Animations 与 CSS Transitions
在 CSS 中有两种设置动画的方式即 CSS animations 和 CSS transitions。它们看上去有些相似,但了解后会发现他们有很大不同。接下来,我们将探讨两者之间的异同,以及什么情况下更适合选择哪一种。
二十分钟掌握React核心理念,老鸟快速入门指南
这是一份适合有着前端开发经验,并习惯使用现代前端框架,却还没深入使用过 React 的老鸟快速入门指南,如果你还没有接触过前端框架,那建议直接在官方文档仔细从头看起。
谈谈node架构中的线程进程的应用场景、事件循环及任务队列
Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,nodejs是单线程执行的,它基于事件驱动和非阻塞I/O模型进行多任务的执行。在理解Node.js的工作原理时,我们需要了解进程、线程、事件循环[1]以及消息队列[2]的概念,本篇文章就基于这几点去详细介绍,帮你慢慢理解node的工作原理。
如何通过Express和React处理SSE
最近AIGC技术的大热,市面上也出现了许多类似生产的AI工具,其中有一大特色就是对话的输出结果是类似真人的打字效果出现,要呈现出这种效果,最主要的就是要利用SSE技术(Server-Sent Events是一种基于HTTP长连接的“服务器推”技术,其特点在于建立更长时间的连接以等待后续数据的传输。
用Golang手写一个Container
Docker 作为一种流行的容器化技术,对于每一个程序开发者而言都具有重要性和必要性。因为容器化相关技术的普及大大简化了开发环境配置、更好的隔离性和更高的安全性,对于部署项目和团队协作而言也更加方便。本文将尝试使用 Go 语言编写一个极简版的容器,以此来了解容器的基本原理。
Git常用命令介绍
当多人同时开发项目时,Git是一个必备的工具,它是一个优秀的版本控制系统,提供了许多命令,来协助开发者更好地管理项目。本着“知其所以然”的想法,我决定对Git相关知识进行系统性的整理,对于一些较难理解的命令,我会以图片的方式进行解释。
JavaScript之观察者模式
在日常开发中,开发人员经常使用设计模式来解决软件设计中的问题。其中,观察者模式是一种常用的模式,它可以帮助开发人员更好地处理对象之间的通信。
WebAssembly:未来的字节编码技术
最终,几乎所有编程语言都将具备编译到WebAssembly的能力,并提供适用于托管WebAssembly的运行时环境(如果尚未提供的话);这将使所有编程语言都能够在浏览器、服务器甚至硬件上运行。