QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:122142
    用户头像

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

    关注

    评论

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

    新手程序员怎么在复杂的代码中寻找bug ?

    小魏写代码

    企业如何通过数据资产化,激活“数据要素x”,乘出新质生产力

    袋鼠云数栈

    大数据 数据资产 数据要素 数据资产管理 数据资产化

    两场CVPR 2024 研讨会,一探大模型闭环真身

    飞桨PaddlePaddle

    百度 BAIDU 百度飞桨 文心一言 文心大模型

    IPQ9554 vs IPQ8074: Which Chipset Reigns Supreme in the World of Networking and Connectivity?

    wifi6-yiyi

    5G WiFi7 6G

    百度智能云加速「低代码+大模型」融合,爱速搭位居 2023 年 IDC 低代码/无代码领导者象限

    百度Geek说

    AI 百度智能云

    官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会

    Apache Flink

    大数据 flink 实时计算

    更智能的广告素材生成!看A/B测试如何驱动AIGC素材调优

    字节跳动数据平台

    A/B 测试 对比试验

    阿里云 EMR Serverless Spark 版免费邀测中

    阿里云大数据AI技术

    大数据 spark 数据开发

    定时任务优化总结(从半个小时优化到秒级)

    京东科技开发者

    软件测试学习笔记丨Allure2报告中添加测试用例步骤

    测试人

    软件测试

    以科技助力非遗文化传承,华为音乐空间音频让传统民乐重焕“新声”

    最新动态

    Java 8 内存管理原理解析及内存故障排查实践

    vivo互联网技术

    实现原理 回收算法 性能诊断及优化技巧

    如何借助API提升产品设计的用户体验

    伤感汤姆布利柏

    掌静脉识别技术助力城轨交通:英特尔携手生态伙伴引领行业转型升级

    E科讯

    亮数据代理IP轻松解决爬虫数据采集痛点

    袁袁袁袁满

    【亲测有效】axureRP9授权密钥 Mac/Windows

    Rose

    【稳定性】稳定性建设之依赖设计

    京东科技开发者

    《2023 IT行业项目管理调查报告》新鲜出炉!助力IT行业持续稳步发展

    禅道项目管理

    项目管理 IT 调查报告 行业趋势

    全面测试服务:从人员外包到工具和平台的综合解决方案

    霍格沃兹测试开发学社

    React memo的原理、实践与思考

    京东科技开发者

    日本股票盘搭建

    GangguHK

    作为程序员需要配蓝光眼镜吗?

    小齐写代码

    基于微信小程序的CMS内容管理系统开发笔记

    CC同学

    autocad2022序列号和密钥 autocad2022中文版详细图文安装教程

    Rose

    AutoCAD2022序列号 autocad2022秘钥 autocad2022破解版 cad2022Mac版

    一文让你简单了解跨境电商需要购买堡垒机的几大原因

    行云管家

    网络安全 电商 数据安全 堡垒机 跨境电商

    高效存储方案:Amazon S3 Express One Zone 正式推出

    亚马逊云科技 (Amazon Web Services)

    SecureCRT for mac如何进行远程连接?含SecureCRT mac永久激活秘钥

    Rose

    SecureCRT激活 SecureCRT Mac破解版 SecureCRT 安装教程 SecureCRT怎么用 远程管理

    Beyond Compare 4 for Mac永久激活秘钥 Beyond compare 4中文汉化安装包

    Rose

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