TargetJS 是一个现代 JavaScript UI 框架,旨在通过引入基于文字对象的独特范式,并通过生命周期和函数式管道扩展其属性和方法,从而简化前端开发。
该框架为 UI 渲染、动画、API 交互、状态管理和事件处理提供了统一的解决方案,从而简化代码并更加注重用户体验。TargetJS 也是一个高性能的 Web 框架,如框架基准测试所示。
TargetJS 解决了前端开发中的几个常见痛点:
- 异步操作的复杂性: 传统 JavaScript 通常涉及复杂的异步操作(Promises、回调等
async/await
)处理。TargetJS 通过提供结构化、同步且可预测的执行流程来解决这个问题,从而使开发人员可以完全避免异步操作。 - 分散的状态管理:许多框架需要单独的库或复杂的模式来进行状态管理。在 TargetJS 中,状态管理本质上是通过其核心概念 Targets 来处理的,从而无需直接进行状态管理。
- 样板代码和冗长代码: TargetJS 旨在减少样板代码。代码简洁紧凑,并遵循可预测的执行流程。不允许方法调用,也很少需要循环和条件语句。
- HTML 的刚性静态层:许多框架使用 HTML 作为生成用户界面的主要媒介。TargetJS 最大限度地减少了对传统 HTML 和 CSS 的依赖,让 JavaScript 成为主要参与者,从而带来更佳、更动态的用户体验。
- 开发流程脱节: 开发人员经常需要同时使用多种工具和概念(UI 库、动画库、状态管理器、事件处理程序)。TargetJS 提供了统一的解决方案,简化了学习曲线和开发流程。
- 动画控制难度高: TargetJS 将动画视为“一等公民”。它还提供细粒度的控制,无需依赖外部库。
- 执行流程复杂:其他框架基于反应模型,这通常导致不可预测的执行流程,而 TargetJS 执行基于目标的编写顺序。
- 大型列表的性能瓶颈: TargetJS 通过使用仅渲染可见分支的树结构来优化大型列表的渲染。
主要特点和概念
-
Target: TargetJS 的基本构建块。Target 为属性和方法提供了统一的接口,并内置了生命周期。它们可以:
- 迭代值(对于动画和过渡很有用)。
- 有条件地执行。
- 管理重复执行。
- 控制执行时间(对于 UI 操作和高级动画有用)。
- 形成同步执行管道(类似组装乐高)。
- 跟踪其他目标的执行进度。
- 声明式执行(执行遵循代码的编写方式)。
- 紧凑的代码(没有不必要的函数调用,最少的 if 语句和循环)。
- 管理自己的状态。
-
统一方法: 目标处理 UI 更新、API 调用、动画、状态和事件,减少学习和集成多个库的需要。
-
独特的计算范式: TargetJS 通过整合多种范式引入了一种新颖的计算模型:图灵完备性、冯·诺依曼执行模型和函数式编程。这带来了以下结果:
- 确定性执行流:目标根据其激活顺序执行,最初遵循其在代码中的顺序。它们作为框架执行周期的一部分按顺序运行。TargetJS 中的所有内容都是同步的,并且无法直接调用目标。
- 强大的功能管道:目标可以构建为具有增强功能的功能管道。
-
易于集成:可用作现有项目中的库。
评论