gpt4 book ai didi

performance - 我应该在路由逻辑还是 Meteor Template Helper 中提供数据?

转载 作者:行者123 更新时间:2023-12-03 17:07:39 25 4
gpt4 key购买 nike

例子:

我正在编写一个处理博客文章列表的 Meteor 应用程序。所有博客帖子都存储在一个名为“帖子”的集合中。我使用 Iron Router 进行路由。

我想向用户显示由特定作者创建的所有帖子的列表。此列表将使用空格键显示。因此,我需要向模板提供数据。

问题:

据我所知,有两种方法可以做到这一点:

  • 使用模板助手
  • 使用我的路线的“数据”属性

  • 选项 1 示例:
    Template.postList.helpers({
    postsToDisplay: function(){
    return Posts.find({author: 'someAuthor'});
    }
    })

    选项 2 示例:
    //Inside my route
    data: function(){
    return {postsToDisplay: Posts.find({author: 'someAuthor'})};
    }



    这两种方法之间有什么显着差异吗?是否有理由偏爱其中之一?一个能提供更好的性能吗?

    非常感谢您的回答!

    最佳答案

    Are there any significant differences between those two methods? Does one deliver better performance?



    不是真的,毕竟这只是设计选择。

    Is there a reason to prefer one over the other?



    我会坚持使用铁路由器 + 数据方法,原因如下:
  • 只有当从服务器获取的数据准备就绪时,您才可以使用 waitOn 来实际显示列表,使用 Router.onBeforeAction("loading")并且 loadingTemplate 改善了整体用户体验。
  • 您可以设计一个数据不可知的帖子列表模板,您可以使用不同的上下文提供该模板。

  • 最后一点特别有趣,因为它允许你定义一个可重用的模板,你可以用它来显示最近的帖子列表、类别中的帖子列表、某个作者的帖子列表,因为你想要在第一名等...
    <template name="postsList">
    {{#each posts}}
    {{> postListItem}}
    {{/each}}
    </template>

    在这里,您可以将posts 定义为postsList 的助手,但最好让调用postsList 的父模板将posts 分配给它需要的任何内容。
    template:"postsList",
    data:function(){
    return {
    posts:Posts.find({
    "author":this.params.author
    })
    };
    }

    这种设计模式允许我们定义一个提供数据上下文的路由,该数据上下文表示给定作者的帖子列表,但您也可以定义另一个提供数据上下文的路由,该数据上下文将按类别列出帖子。

    因此,通过将数据提供者角色从模板助手移到路由定义,我们有一个更可重用的模板,这很好。

    关于performance - 我应该在路由逻辑还是 Meteor Template Helper 中提供数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25384834/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com