写点什么

Meteor 0.8:发布全新的渲染系统 Blaze

  • 2014-04-14
  • 本文字数:1390 字

    阅读完需:约 5 分钟

Meteor 最近发布了 0.8 版本,该版本“对 Meteor 的渲染系统做了一次彻底的检查”。Meteor 的下一代实时模板引擎 Blaze 支持细粒度的 DOM 更新、jQuery 集成和更简单的 API。Blaze 替代了在 2012 年发布的 0.4 版本中所引入的实时页面更新引擎 Saprk。

Matt Debergalis 在 Meteor 的博客上将 Blaze 描述为“对开发者友好的”,同时它的架构比起 Spark 有几个方面的提升。

Blaze 包含两部分:第一部分是一个构建时编译器,它将模板转换成 JavaScript 代码。Spacebars——Handlebars 风格的编译器——将 HTML 模板转换成实时更新的 DOM 元素,用户能够编写普通样子的 HTML 模板和帮助器。

“当某个用户修改了数据或者某个模板依赖的新数据通过网络抵达的时候,Blaze 就会自动地更新你的屏幕,不需要声明任何依赖,也不需要编写管理应该如何更新屏幕的代码。”Debergalis

Blaze 的第二部分是运行时 API,它“渲染元素,跟踪元素的依赖,在元素的完整生命周期内随着依赖的变化更新元素”。

对之前 Spark API 的替代包括移除了Meteor.render,为定制块帮助器的定义引入了一个新模式。添加和废弃的API 列表包括UI.body 现在是与整个BODY 元素相关的一个模板。

Spacebars 解析器让用户能够做一些之前不能做的事情,例如:

  • HTML 感知更新。模板解析器现在会解析 HTML 元素,这让细粒度的响应更新成为可能,包括对 DOM 元素进行属性级的更新。
  • 预编译。Spacebars 编译器会生成调用内部 Meteor 接口的简单程序代码以便于在将来执行客户端或者服务器端的渲染工作。这比在运行时解释模板或者解析它的 HTML 输出更加有效。
  • 语法扩展。Handlebars 语法极小,我们预见随着时间的发展需要添加一些额外的、精选的扩展。我们还会实现 Handlebars 现在支持但是 Meteor 并不具备的顶层特性,例如支持对象,让你能够访问当前索引或者键的#each。

在 Meteor 0.8 中 Handlebars 命名空间已经被废弃。现在 Handlebars.SafeString 改成了 Spacebars.SafeString,而 Handlebars.registerHelper 则变成了 UI.registerHelper。

Spacebars 需要 HTML 是“格式良好的”。引用 Blaze 项目 GitHub 页面上的说明:“在 Spark 中 HTML 解析是通过浏览器完成的,这种方式更加宽容”。

另外,Blaze HTML 解析器目前还没有完全实现 HTML 规范。发布说明中还特别指出它并不会自动地关闭某些标签,例如

  • 。Meteor 社区非常欢迎 0.8 版本的发布。在 LinkedIn 网站上的 Meteor中,用户 Uğur Toprakdeviren 发起了一个讨论,他问道:“对于新版本的 Meteor(Blaze、Spacebars 等)你的观点是什么呢?”。

    Ongo Works 的创建者和 CTO Aaron Singmaster-Judd 回复说:“真了不起,做的好,感谢 Meteor 团队和在新代码库上工作的社区包开发者。”。

    “升级已有的包可能需要一些努力,而这也会导致 Web 上呈现出大量无效的信息,但是这是值得的。”

    Hacker News 上的用户对于该更新的反应也很不错。用户 elsherbini 对 jQuery 集成的评论是“jQuery 兼容的工作量非常巨大,赞一个!”。其他用户也分享了自己对 Blaze 的正面评价,TylerE 对编译器的评价是:“不得不说,我非常兴奋,因为现在终于可以按照一种非旁门左道的方式去使用 jade 模板了,对我而言这是重大的胜利。”。

    Debergalis 指出实时模板引擎是 0.8 版本中仅有的新特性,它向 Meteor 1.0 版本迈出了重要的一步。

    查看英文原文 Meteor 0.8: Blaze Release Overhauls Rendering System

  • 2014-04-14 02:122568
    用户头像

    发布了 321 篇内容, 共 134.0 次阅读, 收获喜欢 19 次。

    关注

    评论

    发布
    暂无评论
    发现更多内容

    真实故事分享|从全职宝妈到备考学生,他们用“碎片时间”灵活兼职、月入千元

    网易伏羲

    网易伏羲 数字游民 群体智能 智能货柜 网易有灵众包

    【FAQ】HarmonyOS SDK 闭源开放能力 — Push Kit

    HarmonyOS SDK

    HarmonyOS SDK应用服务

    openresty中filter_by_lua使用

    天翼云开发者社区

    API网关

    面试官狂问的 28 个 RAG 问题全解析:从基础到架构优化,一次讲透!

    测吧(北京)科技有限公司

    用Dify工作流打造你的AI测试智能体,效率提升500%

    测吧(北京)科技有限公司

    「从画面生成到叙事生成:PrompTale的内容生产新范式」

    极客天地

    当搜索遇见 AIGC:京东零售的“千人千面”素材生成实践

    京东零售技术

    谷云科技深度参与编制《多源异构数据融合技术规范》团体标准,共创数据融合技术标准

    谷云科技RestCloud

    技术标准 数据安全 数据融合 ETL 多源异构

    A Better Finder Attributes for Mac 文件属性批量修改工具

    做梦万元户

    Databend 十月月报:存储过程正式可用,数据流程全面自动化

    Databend

    蒲公英异地组网路由器全新固件:4G联网、策略路由、日志管理全面升级

    科技经济

    云效「AI 智能评审」,先锋体验官招募活动正式启动,赢取极客专属好礼!

    阿里巴巴云原生

    阿里云 云效

    盘点企业级远程控制方案,哪一款最安全?

    科技经济

    绕过Cloudflare防护实现密码重置投毒攻击的账户接管漏洞分析

    qife122

    网络安全 Cloudflare

    2026跨境出海新趋势:社交电商、AI赋能与可持续性成破局关键

    Wolink

    跨境电商 品牌营销 海外社媒营销 海外营销推广 达人营销

    央企智变新实践,网易灵动助力世界500强集团打造无人化标杆

    网易伏羲

    网易伏羲 具身智能 网易灵动 工程机械智能化 无人装载机

    别被“万能”忽悠了!超融合选型忽视这2点,未来升级可能“寸步难行”!

    智驱前线

    用Dify工作流打造你的AI测试智能体,效率提升500%

    测试人

    Scrivener 3 for Mac 功能强大的写作软件

    做梦万元户

    荣耀应用市场《应用隐私高频问题及自检指南 (第一期)》丨开发加油站

    荣耀开发者服务平台

    应用审核 荣耀开发者服务平台 荣耀应用市场 应用隐私合规 应用违规场景解读

    一款AB实验分析智能体是如何诞生的

    京东零售技术

    2026 年RPA全面进化,选型就看这一篇!

    Techinsight

    同城洗车小程序系统:一站式洗车服务解决方案

    微擎应用市场

    标准文库与评审管理系统:为技术团队装上“最强大脑

    上海拔俗

    iA Writer for Mac 专业MD写作工具

    做梦万元户

    万丈高楼平地起:从“输入-处理-输出”第一性原理,看懂系统架构的演进

    poemyang

    高并发系统 高并发架构

    把周报写成业务资产:一条指令如何连接数据、流程和管理共识

    HuiZhuDev

    团队管理 数据驱动 AI应用 国产大模型 工作流自动化

    KCD 杭州站 x OpenInfra Days China 首次联手!华为云云原生团队与您共探Karmada多模板工作负载多集群管理方案

    华为云原生团队

    云计算 容器 云原生

    Meteor 0.8:发布全新的渲染系统Blaze_JavaScript_James Chesters_InfoQ精选文章