重構Vue專案的通用處理流程

2021-09-24 06:54:03 字數 1068 閱讀 6700

需要給所有查詢頁面加上篩選條件快取功能,檢視了一下現有**,發現每個頁面都有大量冗餘的關於本地儲存和遠端儲存的**,並且每個頁面的儲存邏輯都略有不同,想了半天,愣是一行**沒寫下去。我離開座位,就一直想,到底是什麼東西在妨礙我,最後所有矛頭都指向一點——缺少通用流程。

專案在產品階段時,定位的是乙個實施查詢平台,其中有多個查詢頁面,每個頁面的查詢功能點不同,我跟另乙個小夥伴一人負責乙個查詢頁面的開發。由於時間緊任務重,我們沒有做好專案的整體規劃,沒有制定規範,就直接開擼**,在一開始就給自己挖了乙個大坑。

當時我還在實習,只做過一些小專案,不管是對框架的理解,還是在專案的經驗上,都有硬傷,體現在:

過度元件,可能有一種「就不應該出現原生html,只要出現了都要封裝成元件」的瘋狂想法,為了封裝而封裝,導致頁面最後變得稀爛,光找元件就得找半天。

沒有全域性觀,寫**的思路僅侷限在當前頁面,沒有考慮到全域性的一些通用流程。

對框架的理解不夠深入,很多用法都是參照開源專案照葫蘆畫瓢,沒有自己的思考在裡面。

重構應該針對區域性的內容做針對性的**重寫,這樣才能保證安全且高效,這一點對大型專案尤其重要。我就在這裡栽了跟頭,這次重構的專案已經十分複雜,而我愣是硬著頭皮重寫了80%的**,一次性重構了多個功能點,導致重構後的變化點暴增,甚至一度讓我覺得我已經控制不過來了。同時,過多的功能變化也給測試帶來了很大的麻煩,需要耗費大量時間做一次整體的回歸測試。這也是重構專案上線後的第一周,bug頻現的主要原因。

所以,重構之前必須要想好本次重構的功能點,最好針對某乙個功能點做單獨的重構,而不是一次性的重構多個功能點。

這次重構的核心工作就是抽離冗餘邏輯到全域性的通用流程,充分利用:

vue-router的hooks

vue的mixin

axios的interceptors

vuex和localstorage的無縫結合

以此,像乙個系統一樣,為整個專案提供通用的處理流程

後悔沒有先讀《重構—改善既有**的設計》這本書,如果我知道:

盡量重構而不是重寫,需要克制重新寫一遍的衝動

重構時每次只做一件事,避免涉及到多個功能點

我就不會一時衝動把80%的**重寫,也不會一次重寫多個複雜功能點

Vue專案重構

你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。隨著時間的推移 需求的劇增,必須不斷的修改原有的功能 追加新的功能,還免不了有一些缺陷需要修改。為了實現變更,不可避免的要違反最初的設...

我是賣家專案的重構

專案停滯好久的了,今天回來心裡特別難受,最近這些天,天天在學習日語沒有多少時間來想專案上面的事情,可是心裡還是總是牽掛著,不管怎麼說這個項 目都是我的夢想我的心血啊,歷時一年多的了,一定不能夠放棄的。可是做的還是很累感覺,回家了,心情更是沉重了許多,生活的壓力越來越大,原來在學校,在 外面不管怎麼樣...

vue 專案的建立

1.開始動手之前,必須先得在機器上安裝好 npm 然後輸入以下指令將 vue cli 安裝到 的全域性環境中 只需要一次 npm i vue cli g npm 可以理解為前端方面的應用商店管理 2.然後,我們就可以開始建立工程了,鍵入以下的指令 vue init webpack demotest ...