50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

    关注

    评论

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

    MaxCompute Bloomfilter index在蚂蚁安全溯源场景大规模点查询的最佳实践

    阿里云大数据AI技术

    大数据 数据处理 布隆过滤器 数据检索 MaxCompute

    【论文速读】| FirmRCA:面向 ARM 嵌入式固件的后模糊测试分析,并实现高效的基于事件的故障定位

    云起无垠

    阿里巴巴1688 API接口深度解析:如何高效获取商品详情与关键词搜索商品数据

    代码忍者

    1688API接口

    TaurusDB库表时间点极速恢复,大幅缩短数据恢复时间

    华为云开发者联盟

    数据库 数据恢复 :MySQL 数据库

    深入了解京东API接口:高效获取商品SKU与价格信息

    代码忍者

    京东API接口

    膜拜!阿里自爆十万字Java面试手抄本,脉脉一周狂转50w/次

    程序员高级码农

    Java 编程 程序员 java面试 Java面试题

    霸榜GitHub周榜!Java面试福音,逼自己一周背完上岸大厂!

    程序员高级码农

    Java 编程 程序员 java面试 Java面试题

    集成自然语言理解服务,让应用 “听得懂人话”

    不在线第一只蜗牛

    人工智能

    鸿蒙开发之不申请权限写入图片到相册

    猫林老师

    鸿蒙 HarmonyOS 鸿蒙应用开发 鸿蒙原生应用开发 HarmonyOS NEXT

    微店API接口深度解析:如何高效获取商品详情及简短代码示例

    代码忍者

    微店商品详情API接口

    SD-WAN组网的四种方案及其差异

    Ogcloud

    SD-WAN SD-WAN组网 SD-WAN服务商 SDWAN SD-WAN国际专线

    NFT市场回暖:蓝筹项目成为复苏主力,空投潮助推价格上涨

    区块链软件开发推广运营

    交易所开发 dapp开发 链游开发 公链开发 代币开发

    原生APP外包开发的费用

    北京木奇移动技术有限公司

    软件外包公司 APP外包公司 APP外包开发

    闪迪品牌预告全新企业品牌形象,宣布即将焕新启程

    极客天地

    webGL外包开发的技术难点

    北京木奇移动技术有限公司

    数字孪生 软件外包公司 webgl开发

    实战技巧 DevEco Profiler 性能调优 Time

    万少

    鸿蒙

    如何在 Apifox 中发布多语言的 API 文档?

    Apifox

    前端 接口文档 swagger API接口文档 API 文档

    接口自动化测试中切换多套被测环境方法

    测试人

    软件测试

    鸿蒙开发之无须申请权限访问相册图片

    猫林老师

    鸿蒙 HarmonyOS 鸿蒙应用开发 鸿蒙原生应用开发 HarmonyOS NEXT

    思维导图怎么制作?这8个顶流软件值得推荐!

    职场工具箱

    效率工具 思维导图 在线白板 办公软件 思维导图软件

    豆包大模型家族全面升级,重磅发布视觉理解模型

    极客天地

    购买GPU服务器后可以做什么?

    Ogcloud

    gpu 云主机 云服务器 GPU云服务器 云服务器租用

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