我正在使用Meteor,并有一个意见问题。
我设计了一系列用于创建交互式表的模板:可排序的列标题、分页、表元素的反应性计数器等。到目前为止,我一直将几个信息片段(当前页、每页项和排序顺序)存储为会话变量,这样就可以轻松地从每个模板访问它们,而不管它们之间的关系如何(父模板、兄弟关系.)相亲相爱。
到目前为止,这还不错,但现在我希望在同一页上有多个表。由于我有静态命名的会话变量,信息会被页面上的其他表覆盖。
我正在研究一系列的解决方案,并欢迎其他建议。你们觉得怎么样?
1)将每个表命名为每个表,并将站点上每个表的所有信息存储在一个巨大的会话变量中,该变量将是一个按表名键键的对象。这里的缺点是,每个表都需要一个惟一的名称,而我必须跟踪它。好处是,在系统的新部分实现该表可能比以往任何时候都容易。此外,即使在离开页面时,也会存储表排序/筛选器/页信息(但如果需要,也可以重写)。
2)在包含所有表部件的模板上,定义反应性变量,然后通过帮助器显式地将这些变量传递到较低的级别。这将有助于我们清理浮动的会话变量系统(并不是所有会话变量都是坏的),但这将是一个更棘手的重构和更难实现新表的目标。在页面之间导航时,信息将不会被记住。
3)每个表模板都可以引用父表的反应变量(混乱,但可能),并查找特定命名的变量(如"table_current_page")。这将使新表的设置比#2更容易,但每个模板只允许一个表(但每页仍有多个表)。
这些都不是很理想,但我倾向于#1或类似的东西。有什么建议吗?谢谢!
发布于 2016-04-01 14:23:49
正如其他用户对您的问题发表评论一样,基于意见的问题在此上也是非主题的。但无论如何,这是我的观点,
选项1:我不会使用这个!这样,即使一个表的一个反应参数发生了更改,所有其他表帮助程序也将重新运行,而这些表也将重新呈现。随着应用程序的增长,并且可能是一次拥有超过4-5个表的时候,您可能会觉得性能不太好。
选项2:我肯定会使用这个,这(正如您提到的)是非常干净的方式。不影响性能(就像选项1中提到的那样),即使在同一个页面中有多个表。
选项3:如果这样做,这些模板之间将有很强的依赖性。因此,所有子模板都不能在其他地方独立使用。
因此,如果您有足够的时间,那么就选择选项2。如果没有,则选项1有一点变化,也就是说,您可以使用多个具有唯一表名的小会话变量作为前缀或后缀,而不是使用一个大会话变量。这确实会污染您的Session
变量,但是它不会对性能产生影响。
这是我的观点。
https://stackoverflow.com/questions/36358129
复制相似问题