在Vue.js中,Vue本身是一個constructor。
Vue.extend() 是一個繼承于方法的 class,參數是一個包含組件選項的對象。它的目的是創建一個Vue的子類并且返回相應的 constructor。
而Vue.component()實際上是一個類似于Vue.directive() 和 Vue.filter()的注冊方法,它的目的是給指定的一個constructor一個String類型的ID,
之后Vue.js可以把它用作模板,實際上當你直接傳遞選項給Vue.component()的時候,它會在背后調用Vue.extend()。
Vue.js支持兩種不同的API模型:一種是基于類的,命令式的,Backbone 類型的API;另一種是基于標記語言的,聲明式的,Web組件類型的API。
如果還是困惑的話,可以想象你是怎么創建通過new Image()或者 <img>標簽創建 image元素的就知道了。
這兩種方法都對指定的類型很有用,Vue.js提供這兩者只是為了更好的靈活性。