Two things to differentiate:
- Having all of your template code in an
App.vue
(and none in your index.html's #app div) allows us to use the runtime-only version of Vue which is smaller than the full version.
- But there's no real advantage in making it a seperate component below root, you make root from it like this:
new Vue({
el: '#app'
router,
...App, // ES7 object rest spread operator.
});
Which rould result in
<Root>
<Hello>
But they would generally work the same.
I guess it's a matter of personal preference (wether or not) to have a dedicated root instance that is not a real component, and an App
component that works as the the root component of your app.