Instroduction框架概述

阐述AXUI框架开发v3版本的心路历程,既是积累经验,也是厚积薄发;保持初心,忠于原生js标准、css标准和html标准,打造更便捷更好用的UI前端框架。

前言

AXUI框架已经经历了第一代和第二代的迭代,充分认识到纯CSS和HTML的局限性,也意识到过多手动编写代码会影响用户体验。因此,AXUI的目标是:既满足原生前端的标准,又力求简洁易用。

当前前端开发技术的核心围绕着React、Vue、Angular等框架,以及这些框架衍生出来的一系列技术理念,如双向绑定、状态管理、数据驱动、虚拟DOM、JSX等。但这些框架本质上仍然局限于JavaScript这一前端语言,无法突破其技术范围。我们认为,最终这些框架可能会像jQuery一样,逐步被新的技术取代或分食。

我们并不反对基于jQuery或主流框架开发的新前端框架,这些框架可能更加便捷且易用,但它们的BUG修复和更新进度往往依赖于底层框架的更新。我们认为,这种依赖关系并不是一个理想的方案。

前端开发的基础是JavaScript(或TypeScript)、CSS和HTML,这三者构建了前端的核心基石。我们决定摒弃中间层技术,专注于遵循ESM、CSS和HTML的标准。

在AXUI v3版本的开发过程中,我们创新性地采用了最新的CSS和JS技术,包括CSS变量、:where 伪类、:has 伪类、WebComponent自定义组件和Proxy代理等。同时,我们充分考虑浏览器兼容性,将技术标准限制在过去一年内的规范。因此,v3版本在CSS定义、JS编写模式和标签选用方面进行了全面重构,几乎与v2版本完全不同,唯一不变的是命名。

对于原子化的模块(Module),用户可以直接使用或进一步封装;对于WebComponent自定义组件,复制即用,无需额外初始化;对于纯CSS和HTML的组件,内容完全由用户定义,充分发挥用户的审美和灵活性。

我们会继续努力提升产品,只需用户给我们一些时间。

AXUI的理念是:能用CSS实现的尽量不使用JS,必须用JS时尽量少用,若大量使用JS,则尽量做到可复用。

目录结构说明

本框架代码文件结构主要包含distsrc目录,dist目录用于生产环境,src目录用于开发环境,dist的文件由src文件打包而生成。

如果用户基于javascript做开发,那么直接使用dist目录文件即可;如果用户基于typescript做开发,那么建议使用src目录文件。

由于本框架的用户更多是拿来即用,所以src文件夹和types文件夹并不公开发行,专业开发者可挪步至资源栏目单独下载。

                      
dist/----------------生产环境文件
|-- js/----------------JS脚本文件夹
|   |-- ax.js------------UMD格式
|   |-- ax.min.js--------UMD的压缩格式
|   |-- ax.cjs.js--------CJS格式
|   |-- ax.cjs.min.js----CJS的压缩格式
|   |-- ax.esm.js--------ESM格式
|   `-- ax.esm.min.js----ESM的压缩格式
|-- css/---------------CSS文件夹
|   |-- ax.css-----------主样式文件
|   `-- ax.min.css-------主样式文件的压缩格式
src/-----------------开发环境文件,包含原子模块文件(TS和LESS类型文件)
types/---------------TS类型文件夹
|-- rollup.config.js---Rollup配置文件
|-- package.json-------NPM配置文件
|-- tsconfig.json------Typescript配置文件
                    
                

使用场景

本框架的脚本文件提供了JavaScriptTypeScript格式,样式文件支持CSSLess格式。dist目录包含编译后的JavaScript和CSS文件,而src目录主要包含TypeScript和Less文件。这区分出两个主要场景:

  • 快速见效和项目完成:对于需要快速看到页面效果的人群,建议使用dist目录。无需配置Node/NPM/TypeScript/Rollup/Webpack环境,也无需Git工具。
  • 项目集成和二次开发:对于需要集成和二次开发的人群,建议使用src目录。此时需要配置Node/NPM/TypeScript/Rollup/Webpack环境,并使用Git工具。

此外,脚本文件支持三种格式:UMDESMCJS,每种格式适用不同场景:

  • UMD格式:封装了所有模块、组件和工具函数,只需在HTML页面中通过<script src="url"></script>引入,使用ax.*即可直接调用。
  • ESM格式:采用importexport语法,支持在所有JS/TS编译环境中进行模块化导入导出,也可在HTML中通过<script src="url" type="module"></script>引入。
  • CJS格式:采用exportsrequire语法,专为Node环境设计,不适用于前端HTML页面。

尽管框架包含CJS格式文件,但由于其主要用于UI界面呈现,实际上不适合在Node环境中使用,主要推荐使用UMD和ESM格式。

我们注意到脚本和样式文件均有压缩版的min格式文件,这类文件已经删除了所有注释、空格和换行,并且对变量命名已经做了极度简化处理,整体的文件体积变得比较小,文件加载速度快。

  • 如果需要通过控制台做代码调试,应该使用非min格式
  • 如果已经完成所有调试,直接交付用户使用,应该使用min格式