我应该使用什么样的变量?

时间:2016-04-01 13:51:49

标签: templates variables meteor

我正在使用Meteor并提出意见问题。

我设计了一系列用于制作交互式表格的模板:可排序列标题,分页,表格元素的反应计数器等。到目前为止,我一直存储了几条信息(当前页面,每页的项目和排序顺序)作为会话变量,这样就可以轻松地从每个模板访问它们,无论它们彼此之间的关系(父,兄弟......)。

直到现在,这一直都没用,但现在我想要在同一页面上有多个表格。由于我有静态命名的会话变量,信息会被页面上的其他表覆盖。

我正在研究一系列解决方案并欢迎其他建议。你们觉得怎么样?

1)为每个表命名,并在一个巨大的会话变量中存储站点上每个表的所有信息,该变量将是一个由表格键入的对象。名。这里的缺点是每个表都需要一个唯一的名称,我必须跟踪它。好处是在系统的新部分中实现表可能比以往更容易。此外,即使在离开页面时也会存储表格排序/过滤器/页面信息(但如果需要,可以覆盖)。

2)在包含所有表格部分的模板上,定义反应变量,然后使用帮助程序将这些变量显式传递到较低级别。这将有助于我们清理会话变量系统的目标(并非所有会话变量都很糟糕),但这将是一个棘手的重构,并且更难实现新表。在页面之间导航时,不会记住信息。

3)每个表格模板都可以引用父级的反应变量(凌乱,但可能),并寻找具体命名的变量(例如" table_current_page")。这将使新表的设置比#2更容易,但每个模板只允许一个表(但每页仍然可以多个表)。

这些都不是很理想,但我倾向于#1或类似的东西。建议?谢谢!

1 个答案:

答案 0 :(得分:1)

当其他用户对您的问题发表评论时,基于意见的问题与SO无关。但无论如何,这是我的意见,

选项1:我不会用这个!这样,即使一个表的一个反应参数改变了所有其他表,帮助程序也会重新运行,并且这些表也将重新呈现。随着应用程序的增长,可能一次有超过4-5个表,您可能会觉得性能不佳。

选项2:我肯定会使用它,这(正如你所提到的)是非常清洁的方式。即使您在同一页面中有多个表,也没有性能影响(如选项1中提到的那样)。

选项3:如果这样做,您将在这些模板之间具有非常强的依赖性。因此,所有子模板都不能在其他地方独立使用。

因此,如果你有足够的时间,那么去选项2.如果没有,选项1略有改变,即,而不是一个大的会话变量,你可以使用具有唯一的表名作为前缀的多个较小的会话变量或后缀。这会污染您的Session变量,但不会对性能产生影响。

这是我的观点。