Blaze.getData() 和 Template.currentData() 之间的区别以及它们各自的用例

Difference between Blaze.getData() and Template.currentData() and use cases for each of them

我在 Template.onRendered 下尝试使用 Blaze.getData() 和 Template.currentData() 这给了我相同的结果 result.Can 任何人都可以帮助我解释用例之间的区别.我查看了解释

的 Meteor Docs

Template.currentData() :

Blaze.getData([elementOrView]) :

此外 Establishes a reactive dependency on the result 这在 Template.currentData

下是什么意思

Template.currentData() 在 onCreated、onRendered 或 onDestroyed 中获取给定模板的当前数据。

请记住,您正在创建模板实例,因此同一模板可能有不同的数据,但它的不同实例。

在给定的实例中,在助手下,您可以在 this 上下文中获取数据。在onCreated、onRendered中,这是上一层,this.data就是数据。

currentData 表示它是 create/render 等时的数据...但是数据可以更改:例如,如果您的模板从 #each 循环中获取数据,它本身来自从一个集合中,数据很可能首先是未定义的,然后用值填充,并随着订阅接收数据而改变。

currentData 使它具有反应性,这意味着当新数据到来时结果将被更新。

Blaze.getData([elementOrView]) 是从元素或视图中获取数据上下文,即不一定在Template 内。它可以是 DOM 元素或 Blaze.View

这意味着此函数可让您在事后确定呈现元素时的数据上下文是什么。可能会检查元素是否包含预期值,例如来自另一个模板助手或事件。