IMA.js
IMA.js 是一个应用开发栈,用于开发使用纯 JavaScript 和 React 编写的同构应用。
为什么我们使用 IMA.js,以及你为什么也应该使用?
在 Seznam.cz,前端应用的开发伴随着许多需要在项目发布前完成的任务。这主要是因为用户群多样化以及产品需求具有挑战性。
为了**不**在每个项目上重复造轮子,并解决所有这些问题(即需要完成的任务),我们创建了 IMA.js 框架。以下是我们最引以为傲的一些方面:
- **同构** - 应用逻辑首先在服务器端执行,生成页面标记,当应用逻辑在客户端执行时,它会自动绑定到服务器生成的标记,并像单页应用一样运行(或者如果客户端不支持 JavaScript,则像多页应用一样)。这使得加载时间更快,开箱即用地支持网络爬虫,并带来更好的整体用户体验(简称 UX)。
- **兼容 React** - IMA.js 视图扩展了 React 组件,并与我们的控制器紧密配合。这意味着你可以充分利用 React v16 的强大功能,而不会失去任何东西。
- **生产环境就绪** - 无需额外的设置或配置。IMA.js 从一开始就使用特定于环境的配置。
- **经受实战考验** - IMA.js 被 Seznam.cz 的各种项目所使用。其中一些项目正在挑战前端应用能力的极限。
文档
我们为你准备了一个全面的教程:你的第一个 IMA.js 应用。本教程涵盖了使用 IMA.js 创建同构 Web 应用的基础知识,但你也会遇到一些更高级的概念。
有关 IMA.js 的更深入信息,请参阅完整的文档以及 imajs.io 上的更多内容。
IMA.js 主要组成部分
- **核心** - 它包含用于日常工作的基础类和通用类,支持服务器端渲染和在浏览器中水合(hydrate)应用。
- **服务器** - 它包含允许你将 IMA 应用与 express 框架连接的方法。
- **gulp 任务** - IMA.js 使用 gulp 进行打包和自动化。这里有预设的通用任务和基础配置。
插件
请参阅 ima-plugins 仓库以获取可用的 IMA.js 插件。
快速入门
通过一个命令初始化应用骨架
npx create-ima-app
# or if you are using yarn
yarn create ima-app
并开始开发!
cd create-ima-app
npm run dev
# or if you are using yarn
yarn dev
贡献
请参阅如何贡献。