第二章,vue設(shè)計(jì)與實(shí)現(xiàn)總結(jié):
tree-shaking機(jī)制:可以處理因框架因警告信息過(guò)大,而影響框架的體積,利用tree-shaking機(jī)制,在構(gòu)建中可以配合構(gòu)建工具預(yù)定義常量,比如DEV常量,從而實(shí)現(xiàn)在開(kāi)發(fā)環(huán)境中打印警告信息,在生產(chǎn)環(huán)境中則不包含這些信息,從而提高線上代碼體積的可控性。
Tree-Shaking 是一種排除 dead code 的機(jī)制,框架中會(huì)內(nèi)建多種能力,例如Vue.js 內(nèi)建的組件等。對(duì)于用戶可能用不到的能力,我們可以利用 Tree-Shaking 機(jī)制使最終打包的代碼體積最小化。另外,Tree-Shaking 本身基于 ESM,并且JavaScript 是一門動(dòng)態(tài)語(yǔ)言,通過(guò)純靜態(tài)分析的手段進(jìn)行 Tree-Shaking 難度較大,因此大部分工具能夠識(shí)別 /#PURE/ 注釋,在編寫框架代碼時(shí),我們可以利用 /#PURE/ 來(lái)輔助構(gòu)建工具進(jìn)行 Tree-Shaking。
框架的錯(cuò)誤處理:
框架為用戶提供統(tǒng)一的錯(cuò)誤處理接口,用戶可以通過(guò)注冊(cè)自定義的錯(cuò)誤處理函數(shù)來(lái)處理全部的框架異常
最后,我們點(diǎn)出了一個(gè)常見(jiàn)的認(rèn)知誤區(qū),即“使用 TS 編寫框架和框架對(duì) TS 類型支持友好是兩件完全不同的事”。有時(shí)候?yàn)榱俗尶蚣芴峁└佑押玫念愋椭С?,甚至要花費(fèi)比實(shí)現(xiàn)框架功能本身更多的時(shí)間和精力。