Soll ich Daten in Routing Logic oder Meteor Template Helper bereitstellen?

8

Beispiel:

Ich schreibe eine Meteor-App, die sich mit einer Liste von Blogposts beschäftigt. Alle Blogposts werden in einer Sammlung namens "Posts" gespeichert. Ich benutze Iron Router für das Routing.

Ich möchte dem Benutzer eine Liste aller Posts anzeigen, die von einem bestimmten Autor erstellt wurden. Diese Liste wird mit Leertasten angezeigt. Daher muss ich die Daten der Vorlage bereitstellen.

Problem:

Soweit ich weiß, gibt es zwei Möglichkeiten, dies zu tun:

  1. Verwenden von Vorlagenhelfern
  2. Verwendung der 'Daten'-Eigenschaft meiner Route

Option 1 Beispiel:

%Vor%

Option 2 Beispiel:

%Vor%

Frage

Gibt es signifikante Unterschiede zwischen diesen beiden Methoden? Gibt es einen Grund, eines vor dem anderen zu bevorzugen? Liefert man bessere Leistung?

Vielen Dank für Ihre Antworten!

    
tomet 19.08.2014, 13:35
quelle

1 Antwort

7
  

Gibt es signifikante Unterschiede zwischen diesen beiden Methoden? Liefert man bessere Leistung?

Nicht wirklich, es ist nur Designentscheidungen.

  

Gibt es einen Grund, einen vor dem anderen zu bevorzugen?

Ich würde bei der Eisen-Router + Datenmethode bleiben, hier ist warum:

  • Sie können waitOn verwenden, um die Liste nur dann anzuzeigen, wenn die vom Server abgerufenen Daten bereit sind, indem Router.onBeforeAction("loading") verwendet wird und eine loadingTemplate die allgemeine Benutzererfahrung verbessert.

  • Sie können eine datenunabhängige postsList-Vorlage entwerfen, die Sie mit verschiedenen Kontexten füttern können.

Der letzte Punkt ist besonders interessant, da Sie damit eine wiederverwendbare Vorlage definieren können, mit der Sie die Liste der letzten Beiträge, die Liste der Beiträge in einer Kategorie und die Liste der Beiträge eines bestimmten Autors anzeigen können um in erster Linie zu erreichen, etc ...

%Vor%

Hier könnten Sie Posts als Helfer von postsList definieren, aber es ist besser, wenn die übergeordnete Vorlage, die postsList aufrufen wird, Posts den benötigten Dingen zuweist.

%Vor%

Dieses Entwurfsmuster ermöglicht es uns, eine Route zu definieren, die einen Datenkontext bereitstellt, der die Liste der Beiträge eines bestimmten Autors darstellt, aber Sie können auch eine andere Route definieren, die einen Datenkontext bereitstellt, der die Beiträge nach Kategorie auflistet.

Indem wir also die Rolle des Datenanbieters vom Vorlagen-Helper zur Routendefinition verschieben, haben wir eine viel wiederverwendbare Vorlage, was schön ist.

    
saimeunt 19.08.2014, 14:00
quelle