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

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

    关注

    评论

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

    无缝融入,即刻智能[1]:MaxKB知识库问答系统,零编码嵌入第三方业务系统,定制专属智能方案,用户满意度飙升

    汀丶人工智能

    agent 智能问答 rag

    redis渐进式rehash

    天翼云开发者社区

    数据库 redis

    Apache Doris + Iceberg 快速搭建指南|Lakehouse 使用手册(三)

    SelectDB

    数据湖 Doris iceberg LakeHouse 湖仓一体

    全栈 JavaScript 开发图景

    FunTester

    使用企业级即时通讯对企业有什么好处?

    BeeWorks

    针对一个红队病毒样本逆向分析

    我再BUG界嘎嘎乱杀

    黑客 网络安全 安全 网安

    B站安全开发流程落地实践

    我再BUG界嘎嘎乱杀

    网络安全 安全 哔哩哔哩 网安 安全开发流程

    最全数据资产目录模板汇总,有必要了解一下!(附下载)

    极盾科技

    数据安全

    SD-WAN组网加速ZOOM视频会议

    Ogcloud

    SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

    华为大咖说 | 数字化解码:如何用日常语言讲明白数字世界?

    华为云PaaS服务小智

    云计算 华为云

    Keepalived基本原理

    天翼云开发者社区

    Linux keepalive

    科学思考的范式、模式与方法

    Anliven

    个人提升 思维

    自从用了这些监控工具,我连续几天没睡好觉!

    不在线第一只蜗牛

    数据库 大数据

    百度发布2024上半年热点报告,哪些热梗成为全民口头禅?

    极客天地

    SD-WAN在智能物流领域的应用与前景

    Ogcloud

    SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

    全球支持与无界服务:跨越地域的数据采集与分析

    可观测技术

    监控

    多云和混合云支持:跨越云平台的统一视图

    可观测技术

    多云平台

    低代码实践:题型物料化设计(一)

    XIAOJUSURVEY

    开源 低代码 组件化 问卷

    ZOS对象存储跨域资源访问的实现和使用

    天翼云开发者社区

    对象存储 跨域

    RocksDB 二级缓存

    天翼云开发者社区

    RocksDB

    Zilliz向你发来邀请:请加入Stack Overflow吧!入股不亏!

    Zilliz

    人工智能 Zilliz 向量数据库 大语言模型

    低代码实践:题型物料化设计(二)

    XIAOJUSURVEY

    开源 低代码 组件化 问卷模型

    揭秘抖音视频列表数据接口:获取数据的新利器

    tbapi

    抖音API 抖音视频数据接口 抖音视频列表接口 抖音视频列表数据采集 抖音视频API接口

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