
类似于HTML的语言,AMP和Marko
静态页面服务
https://github.com/expressjs/serve-static
AMP(加速移动页面)是一个由Google与Twitter合作开发的开源框架,它提供了一种直接的方式来创建轻量级的网页,以便用户即时使用,获得了极大改善的体验:内容更快,更具吸引力,更易于阅读。
从本质上讲,AMP框架允许我们通过简化HTML和简化的CSS规则来为移动设备构建轻量级体验
AMP HTML:
一个比常规HTML更精简的HTML版本,对可以使用的HTML标签有严格的规范。为确保快速加载页面,AMP上不允许使用某些HTML元素,例如:表单;某些默认标签被AMP标签取代,例如,在AMP HTML代码中,标签< amp-img >代替< img >进行图像集成。
注:AMP对CSS有限制,只能使用简化版的CSS
AMP JS:
为了确保移动平台上的快速页面加载,AMP限制使用任何Javascript,唯一的例外是AMP脚本。需要使用AMP自己的JavaScript库来负责加载所有网站元素,而所有外部资源都是异步处理的,这意味着渲染过程可以在不受外部影响的情况下进行。
AMP CACHE:
通常称为AMP缓存,AMP平台的一个关键组件是其基于代理的内容分发网络(CDN),可提供加速移动页面。
优点:
缺点:
声明式的拓展html文件
可以单个marko文件
class {
onCreate() {
this.state = { count: 0 };
}
increment() {
this.state.count++;
}
}
style {
.count {
color: #09c;
font-size: 3em;
}
.press-me {
padding: 0.5em;
}
}
<output.count>
${state.count}
</output>
<button.press-me on-click('increment')>
Press me!
</button>也可以拆分,marko、css、js
<output.count>
${state.count}
</output>
<button.press-me on-click('increment')>
Press me!
</button>css文件
.count {
color: #09c;
font-size: 3em;
}
.press-me {
padding: 0.5em;
}js
export default {
onCreate() {
this.state = { count: 0 };
},
increment() {
this.state.count++;
}
};Plop 是一个小型的命令行工具,专注于帮助开发者自动生成代码片段和文件结构,类似于代码生成器。它可以通过简单的模板定义和 CLI(命令行界面)交互,在项目中快速生成预定义的代码片段,从而提升开发效率。
Plop 的主要功能
plopfile.js 来定义生成器,避免手动创建重复的代码。plop 后,它会提示输入相关参数,并根据这些参数生成定制的代码。为了帮助开发者简化代码生成和项目中的重复性操作。尤其是在前端开发中,开发者通常会创建大量的类似代码结构(如组件、服务模块、Redux actions 等),这些操作容易出错且耗时。Plop 的设计初衷就是以简单、灵活的方式,帮助开发者快速生成标准化的代码结构和文件,从而减少手动创建的工作量。
Plop 诞生背景与要解决的问题
在代码生成方面,Plop 的竞品主要有 Yeoman、Hygen、Slush 等。这些工具的核心功能类似,但侧重点略有不同:
https://github.com/handlebars-lang/handlebars.js
Handlebars.js 诞生于 2010 年左右,是从 Mustache 模板引擎发展而来的。它的诞生背景与当时前端开发中对模板引擎的需求密切相关,主要是为了解决以下几个问题:
在传统的 JavaScript 编程中,动态生成 HTML 通常会混合大量的业务逻辑和 DOM 操作,导致代码复杂、不易维护。Handlebars.js 提供了一种更清晰的方法,将 HTML 模板和 JavaScript 逻辑分开,通过占位符的方式在 HTML 中表示数据,而不直接处理业务逻辑。这种模式更易维护和调试,也符合 MVC(Model-View-Controller)架构的分离原则。
在当时,JavaScript 渲染 HTML 的方式通常涉及大量 DOM 操作,如 document.createElement、innerHTML 等,写法繁琐,且性能不佳。Handlebars.js 允许开发者将模板和数据简单地合并生成最终的 HTML,无需手动操作 DOM,从而加快了开发速度。
Handlebars.js 是对 Mustache 模板引擎的增强。Mustache 本身是一种逻辑少的模板引擎,遵循“无逻辑模板”原则,但它的功能较为有限。为了更灵活地控制模板渲染逻辑,Handlebars.js 在 Mustache 的基础上引入了 Helper 和 Partial 的概念,使开发者可以定义自定义函数(Helper)和复用小模块(Partial),让模板的表达能力更强。
随着单页应用(SPA)和前后端分离架构的流行,前端承担了更多的视图渲染责任。Handlebars.js 等模板引擎帮助前端在客户端渲染模板,减轻了后端服务器的负担,同时也提升了用户体验,因为无需等待服务器渲染即可更新页面内容。
Handlebars.js 可以在浏览器和 Node.js 环境下使用,方便跨平台开发。无论是前端渲染还是在 Node.js 后端生成 HTML,Handlebars.js 都能胜任。