Backbone.js per attribute rendering (multiple small views vs multiple templates per view ) <p>I have a model and a view. The view displays attributes of a model and allows the user to manipulate these attributes. The problem is that when an attribute is modified it re-renders the whole view which causes a lot of problems for me.</p> <p><em>Example blur event on a text input saves the new input to an attribute and thus fires render. Which means that if the user clicked from that text input straight to a button on the same view that event will never fire as the first event that fires will be blur causing the whole view to re-render and thus losing the button click event.</em></p> <p>I have two ideas:</p> <ol> <li>Have a single view where every attribute is in a separate template. Then I bind to a particular attribute change event and in render I update only the html of the changed attribute. This seems like a hack, as there is a lot of work to force the view to update only the changed attribute. It will add a lot of unnecessary complexity to an already complex view.</li> <li>Create a master view which consists of views, where each of them represents a model's attribute. This will create a lot of views, with nearly no functionality. </li> </ol> <p>I seem to prefer the 2. option. What do you think? What are the best practices? Is there any better way to handle this?</p>