MVVM理論到實戰(zhàn)-后話

從開始研究到寫完整個這個系列,花了快一年半的時間,其中很大部分原因是因為學(xué)習(xí)和工作太忙,還有就是因為一些事情荒廢了一段時間,不過也總算是完成了。

其中花的時間最多的不是寫文章而是在研究代碼上,前后一共寫了三版,前面兩版用不同的思路去寫,但都不太理想,嗯。。?;蛘哒f是都不是我想要的,雖然功能都寫出來了,也完美實現(xiàn)了vue的一些功能,但是總覺得寫的太垃圾了o(╥﹏╥)o,有些編程思想怎么也表達(dá)不出來,所以一些功能只能用代碼量去堆,對于我這種喜歡簡潔代碼的人來說簡直不能忍。

至于為什么不先去看VUE源碼,其原因一個是源代碼看不太懂(〃'▽'〃),二個是由于之前對模板解析技術(shù)有一定的研究,再加上當(dāng)時研究MVVM的時候發(fā)現(xiàn)了defineProperties這個函數(shù),就覺得憑自己應(yīng)該能搞得出來,結(jié)果說多了都是淚啊(╥╯^╰╥)

最開始的兩個版本

之后在逛論壇的時候發(fā)現(xiàn)了DMQ大大所寫的mvvm,按照作者的說法是對VUE的源代碼做了簡化改造,一些更復(fù)雜的功能并沒進(jìn)行一個實現(xiàn),其主要目的是為了幫助對vue源碼的理解。
當(dāng)時花了幾天的時間去看他的代碼,看完后給我的感覺就是,還能這樣寫?。??

當(dāng)初我開始寫的時候并沒往面向?qū)ο筮@方面去想,也是因為沒有面向?qū)ο蟮乃枷?,或者說是,js寫久了,面向?qū)ο蟮乃枷牒鼙∪?,這也是ES6/7之前JS的不嚴(yán)謹(jǐn)造成的,雖然之前有各種模塊化依賴開發(fā),但是我對于這種也就用用完事,根本沒有深刻的面向?qū)ο笏枷搿?/p>

在研究完他的代碼后,我就開始動手仿著寫了一套,也就是現(xiàn)在的第三版,寫完后終于舒服了( ̄︶ ̄)↗,這才是我要的代碼,雖然還有諸多不足,但終于搞出來了也是挺開心的,所以也決定將這些以文章的形式記錄下來。

再次感謝DMQ的code和MD,讓我意識到了面向?qū)ο蟮闹匾?,其實回過頭再去看一些設(shè)計模式,就會發(fā)現(xiàn)有其實很多都運用到了面向?qū)ο蟮乃枷耄赃€是比較建議去學(xué)習(xí)一門后端語言,比如java這種強類型語言,不需要多精,主要是對它開發(fā)思想的一個深入的理解。

再有就是前端的技術(shù)更新太快了,目前vue3底層 observer 實現(xiàn)是使用proxy進(jìn)行重構(gòu),并且添加了很多新特性,還在研究中...

不過我也打算重構(gòu)我的第三版,做個ES6/7版,使用proxy和class進(jìn)行重構(gòu),到時候代碼會直接上傳到我的GitHub上

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容