tutorial react examples apps meteor

react - El uso del meteorito ¿busca o encuentra en las funciones auxiliares de la plantilla?



meteor tutorial (2)

Dentro de una función helper de plantilla de meteorito, ¿hay alguna diferencia en el rendimiento, el número de repeticiones, o cualquier otra cosa si devuelvo el resultado de un find frente a una fetch ?

Por ejemplo, el enfoque de búsqueda:

Template.players.topScorers = function () { return Users.find({score: {$gt: 100}}, {sort: {score: -1}}); };

O agregando un alcance:

Template.players.topScorers = function () { return Users.find({score: {$gt: 100}}, {sort: {score: -1}}).fetch(); };

El enfoque de solo búsqueda es lo que se encuentra actualmente en los docs , pero he visto muchas otras personas que usan fetch .


Esto es lo que seguimos en Oodles Technologies.

Para definir helper, simplemente ve al archivo js de tu plantilla, por ejemplo, si tienes un nombre de plantilla como allInventory, ve al archivo allInventory.js y escribe el helper de la siguiente manera:

Template.allInventory.helpers({ })

haga una función dentro de este ayudante en la que ponga su lógica para obtener datos de la base de datos o de la sesión o de otro servicio y que use eso en su html como: -

Template.allInventory.helpers({ productDetails: function() { return Session.get(''dbData''); } }) On html side you just need to use the function name as follows:- {{#each productInfo in productDetails}} <div class="imgb"><img src="{{productInfo.image_url}}"></div> {{productInfo.item_name}} {{productInfo.seller_sku}} {{productInfo.quantity}} {{productInfo.price}} <a type="button" class="full-view text-success"><i id="fullView" data="{{productInfo._id}}" class="fa fa-eye"></i></a> {{/each}}

Como puede ver en el producto anterior, se puede acceder directamente a un nombre de función en su clase auxiliar en la que obtiene los datos que desea representar en su Html a través de ese nombre y puede recorrerlo en cada bucle en plantillas html.


Sí hay.

Al usar fetch, registra una dependencia en todo el conjunto de resultados de la consulta sobre el terreno. Al usar find y más adelante iterar usando {{#each}} se registra una dependencia en cada documento por separado. Por lo tanto, cuando un documento cambia, solo se vuelve a procesar el código relevante. Al usar fetch , al cambiar cualquier documento en el conjunto de resultados, se volvería a representar todo el ámbito en el que utilizó fetch .

Para pequeños conjuntos de resultados, no hace ninguna diferencia. Para conjuntos más grandes con cambios frecuentes, podría ralentizar el cálculo y causar artefactos visuales no deseados.

Escribí una post que puede ayudarte a entenderla (aunque no responde tu pregunta directamente)