title: Any reason to externally call Backbone.View.render?
body: <p>The following seems to be a very common pattern for creating small subviews in Backbone.js: <code>this.$el.append(new ListItem({...}).render().el)</code>.</p>
  
  <p>I can only think of problems that external calls of <code>render</code> cause, such as the view's data not yet been fetched. This is why I let the view take care of its own rendering. Am I missing something here?</p>
  
  <p>Edit: Examples in pseudocode (irrelevant code omitted etc.) to clarify things:</p>
  
  <p>Why the following in which <code>render</code> is called explicitly: </p>
  
  <pre><code>var FruitView = Backbone.View.extend({
    render: function() {
      this.$el.html(...);
    }
  });
  
  var FruitListView = Backbone.View.extend({
    render: function() {
      this.collection.each(function(fruit) {
        this.$el.append(new FruitView({...}).render().el);
      });
    }
  });
  </code></pre>
  
  <p>Instead of this where <code>FruitView</code> takes care of its own rendering:</p>
  
  <pre><code>var FruitView = Backbone.View.extend({
    initialize: function() {
      this.render();
    },
  
    render: function() {
      this.$el.html(...);
    }
  });
  
  var FruitListView = Backbone.View.extend({
    render: function() {
      this.collection.each(function(fruit) {
        this.$el.append(new FruitView({...}).el);
      });
    }
  });
  </code></pre>