LCUI 3.0 开发日志

简介

3.0 版本计划将 LCUI 重构为一个由多个基础库组成的库,每个基础库具备风格统一、耦合度低、易于编译安装等特性。

此文章内容有待继续完善。

LCFinder 0.5.0 开发日志

开发计划:

  • 更新 UI
  • 优化性能
  • 优化内存占用
  • 重构图片查看器组件
  • 重构缩略图列表组件
  • 改用 lcui-cli 管理翻译文本
  • 添加测试用例
  • 完善 CI 脚本

LCPkg 0.3.0 开发日志

开发计划:

  • 补充单元测试和 CI 构建脚本
  • 采用 airbnb 编码规范格式化全部代码
  • 添加 install 命令
  • 添加 uninstall 命令
  • 添加 link 命令
  • 添加 export 命令
  • 支持使用 pkg@version 指定包的版本
  • 移动包目录到用户主目录下,以让所有项目共用同一包目录
  • 更新自述文档

从 QuickJS 源码理解 JavaScript 的闭包

摘要

本文从 QuickJS 源码的角度分析 JavaScript 语言中的闭包的实现原理,首先介绍闭包的概念,然后从相关 C 语言代码,一步步解析闭包以及相关的垃圾回收机制的底层实现,最后总结闭包的定义和相关原理。

QuickJS 是一个用 C 语言编写的小型 JavaScript 引擎,支持 ES2019 规范,之所以选择 QuickJS 作为本文的解析对象,是因为它的源代码源码是由 C 语言编写的,仅由几个 C 文件组成,没有那么多复杂难懂的语法,也没有任何外部依赖,阅读难度较低。

注意,这不是一篇详细解析 QuickJS 源码的文章,作者仅对闭包相关的源码做了简单的解析,部分内容是在未完全理解 QuickJS 全部功能和工作原理的情况下而撰写的,某些概念和工作原理只适用于 QuickJS,可能具有误导性,请谨慎理解。

造一个简单的浏览器

前言

本教程将通过一个简单的仿浏览器界面的程序,向你介绍关于构建图形界面程序的基础知识,掌握这些知识后,你将会对图形界面开发有更加深刻的理解。

Trad 0.2.0 开发日志

开发计划:

  • 参考 babel 的架构,重写编译器及相关模块
  • 重写 LCUI 的绑定

LCUI 2.0.0 开发日志

开发计划:

  • 重写布局系统,完善对 Flex 布局支持。
  • 改进部件的更新流程,只需遍历一次部件树就能完成所有部件的更新。
  • 优化部件的无效区域收集性能。

盒阴影的绘制方法

需求

LCUI 现有的阴影绘制方法只适合直角边框,没有考虑到圆角的情况,在添加 LCUI 的圆角绘制功能后,阴影绘制功能也需要重写。

LCUI Router 0.1.0 开发日志

一个应用的图形界面通常会包含很多个视图,视图切换和导航是很常用的功能,然而在 LCUI 中实现这些功能却非常麻烦,考虑到这些问题,需要一个像 Vue Router 的路由解决方案,主要功能下:

LC Design 1.0.0 开发日志

准备给 LCUI.css 加一些组件,首先得改用新名字,Ant Design 宣称它是一套企业级设计语言,那么名字就命名为 LC Design,一套适用于 LCUI 的设计风格的组件库。