写点什么

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

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

    关注

    评论

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

    最高评级!华为云CodeArts Board获信通院软件研发效能度量平台先进级认证

    YG科技

    Web3 新手攻略:9个不可或缺的APP助力你踏入加密领域

    股市老人

    新手必看!Bitget Wallet 和 Metamask 到底该选谁?真实对比评测

    BlockChain先知

    软件测试/测试开发丨App自动化—CSS 定位与原生定位

    测试人

    Python 程序员 软件测试 自动化测试 测试开发

    Apache IoTDB 作为合作伙伴参加 Doris Summit Asia 2023!

    Apache IoTDB

    华为云持续扎根软件工具生态,突破10倍研发效能赋能千行百业

    YG科技

    慕圣妃轻医美4998系统开发

    张泽🐟APP小程序开发定制

    基于 ACK Fluid 的混合云优化数据访问(三):加速第三方存储的读访问,降本增效并行

    阿里巴巴云原生

    阿里云 云原生 容器服务

    国产化即时通讯平台WorkPlus,助力企业实现自主可控的沟通与协作

    BeeWorks

    WorkPlus一站式解决方案,助力企业构建统一门户系统

    BeeWorks

    华为云API图像搜索ImageSearch的快捷性—AI帮助您快速归类图片

    YG科技

    除了Office,这8款好用的办公软件也值得推荐!

    彭宏豪95

    效率 职场 软件推荐 在线白板 办公软件

    Linux是什么,其特点是啥

    芯动大师

    WorkPlus私有部署即时通信助力企业信息安全与高效协作

    BeeWorks

    天谋科技与华为鲲鹏完成兼容性互认证

    Apache IoTDB

    Last Week in Milvus

    Zilliz

    非结构化数据 Milvus Zilliz AIGC

    百度世界2023剧透丨百度王颖:百度文库每周上线2-3个AI新功能,累计使用次数近亿

    彭飞

    请查收:赛博威TPM营销费用管理指南——费用管理类型篇

    赛博威科技

    营销数字化

    别再说被八股文害惨了!GitHub阿里Java面试题库标星145K不无道理

    程序员万金游

    #java #面试 #编程 #程序员 #Mysql

    华为云API图像识别Image的趣味性—AI识别迈克尔·杰克逊

    YG科技

    代码混淆界面介绍

    雪奈椰子

    百度世界2023剧透丨肖阳:「语义检索技术+大语言模型」融合,百度「新搜索」将亮相

    彭飞

    终极对决!Bitget Wallet vs Metamask 钱包大比较!隐藏功能曝光

    石头财经

    低代码开发不可能取代程序员

    互联网工科生

    低代码

    Redis Scan原理

    宁静知行者

    redis 底层原理

    华为云发布CodeArts Governance开源治理服务,开源使用更安心

    YG科技

    OpenHarmony嵌套类对象属性变化:@Observed装饰器和@ObjectLink装饰器

    OpenHarmony开发者

    设计师、教师、奶爸从零开始做提示词,文心一言APP让提示词“人人可用”

    彭飞

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