存储BlazeJS组件变量(模板实例或数据上下文)的位置在哪里?

时间:2017-08-30 09:05:32

标签: meteor meteor-blaze

这是一些UI代码,我试图为智能组件传递的数据设置一些默认值:

Template.selector.onCreated(function() {
  const template = this,
        data = this.data;

  _.defaults(data, {
    inputValue: new ReactiveVar(),
    showDropOnFocus: true,
    showDropOnDblClick: true
  })

  const drop = template.drop = {
    shown: new ReactiveVar()
  };

  const input = template.input = {
    hasFocus: new ReactiveVar(),
    hasValue: new ReactiveVar(),
    wasDblClicked: new ReactiveVar()
  };

  ...
})

但对我来说,在数据上下文中存储一些组件变量,而在模板实例中存储其他组件变量时,我感到非常明确。

所以,这是一种正确的方式:

  1. 修改数据上下文,同时将此属性标记为只读 BlazeJS docs
  2. 传递数据反应变量,在顶层定义 分量θ

1 个答案:

答案 0 :(得分:0)

正如您所指出的那样,data上下文不应该被修改。在模板实例本身中存储任何反应变量的常见做法。通常,onCreated是最佳选择。