

Revesiting Backbone.js View Rendering - elving
http://elving.me/post/45836034024/revesiting-backbone-js-view-rendering

======
pselbert
There are numerous benefits to using a presenter, or at least a
"renderContext" object. Most conversion, formatting, predicates, and lazy
attributes won't come through with toJSON(). The performance penalty is
negligible compared to the benefit of testable presenter methods, logic out of
the view, etc.

Performance isn't the only thing to consider.

------
wprater
I agree that putting all that logic and template vars into a template is
confusing. Hard to create mocks of what the HTML should actually be structured
like. Im using Jade so I can be terse and pre-compiling the templates. While
in my Backbone application, I apply DOM-like rendering with Plates.js.

------
zimbatm
I'm not familiar with Backbone but isn't `model.toJSON()` unnecessarily
removing useful data types (like Date) that aren't available in JSON ?

~~~
papercrane
You're probably thinking of `JSON.stringify()`. `model.toJSON()` just returns
a clone of the models attributes object.

~~~
zimbatm
So `model.toJSON()` isn't supposed to return a JSON-compatible data structure
?

~~~
papercrane
It's supposed to return an object that is suitable for turning into JSON, but
it won't convert any of items members. JSON.stringify relies on the toJSON
functions of the members to serialize themselves.

------
lopatin
Why is using 'model.toJSON()' overkill?

