Vue2.6 源碼全方位深入解析課
那為什么不用class來寫vue而是用構(gòu)造函數(shù)的形式呢?
這是因?yàn)閂ue這個(gè)對(duì)象的方法太多了,很多都需要放在不同的模塊來寫的,在不同的模塊我只要在vue的prototype上去添加方法就好了。如果是class,就不好添加了,只能在一個(gè)class上添加,繼承的話調(diào)用的也是其他class了,所以采用構(gòu)造函數(shù)的形式。
構(gòu)造函數(shù)和class的使用場景區(qū)別
當(dāng)一個(gè)對(duì)象或模塊頻繁用到繼承或者內(nèi)部屬性比較固定,采用OOB的思想,即采用class
,如果一個(gè)模塊非常大,要分散到多個(gè)子模塊去編寫,且不怎么用到繼承采用構(gòu)造函數(shù)的形式。
整體流程:
new Vue => init => $mount => compile => render => vnode => update(patch) => dom
new Vue & init:
混入了一些全局方法
$mount
調(diào)用render函數(shù),沒有則創(chuàng)建一個(gè)
標(biāo)簽: