前言阅读前你可能需要了解这些:了解 TCP/IP、OSI 模型了解 HTTP 协议了解 Node.js从几个问题入手:服务间调用的长连接如何设置服务器上 TCP 连接数限制服务器上 TCP 连接数对业务的影响服务间的长连接假设我们的目标服务,存在服务的消费者和提供者,服务之间存在
Quill.js 是一个借助 contenteditable + MutationObserver 实现的 API 驱动的富文本编辑器。 有以下特性: 为开发者构建,细粒度访问、更新文本内容,一致的的 JSON 格式输入输出 跨平台。所有现代浏览器,在手机端、平板、桌面 伸缩性强。大小项目都可简单使用,可通过自定义扩展丰富富文本功能。
Parchment 是 Quill.js 的文档对象模型,类似 DOM 之于 web 页面的关系。Parchment 树是由多个 Blot 组成的,这也同样类似 DOM 树与 Node 的关系。Parchment 应用于结构、格式和内容,Attributes 提供轻量级的格式信息。
Delta 是用于描述富文本文档结构的内容与变更。由于其描述的通用性,quill.js 将其独立维护。它的数据结构是基于 JSON 格式的,方便服务间进行互解析,例如 一份描述富文本格式的 数据,可很方便的渲染于 Web 与 Android or iOS。相比于复杂和带有歧义的 HTML,其更简单纯粹。
软件开发中,随着系统功能变多,复杂度成指数级上升,而复杂度的增高多来源于模块间的耦合过于严重,插件化的设计模式能一定程度解决模块耦合的问题。抽象出系统的核心流程节点,基于这些节点与多个插件进行交互,最终实现整个系统。当然,前端领域的一些场景也有插件化应用的案例,本篇文章我们基于这些案例,一览其中的设计原理与插件核心执行流程。
构建打包是前端工程化领域的关键组成之一。作为一名前端开发者,对构建打包工具的认知,是绕不过去的一道坎。构建工具帮助前端流程化,自动化,更对前端各大框架有着深远的影响,大多数前端框架已经深度依赖编译时工具去实现。 本次咱们就面向编译打包的基础功能,从零开发一个模块化的打包工具。