省A類競賽二等獎 村先遊專案VUE前端重構

2022-09-02 03:15:13 字數 2404 閱讀 7117

村先遊--省二競賽專案vue重構

重構前的(前端+後台):

重構前的(前端):v2

筆記:1.避免元件樣式汙染

功能:登陸頁@/pages/login/login:

1.登陸頁驗證手機號碼

2.登陸頁是否顯示密碼

3.跨域獲取驗證碼,將base64編碼過的進行顯示

4.導航欄登陸狀態判斷,如果登陸則顯示不同的導航欄

5.跨域驗證:手機號,密碼和驗證碼

坑點:一開始我想通過action-->mutation-->getter來進行對賬號密碼驗證碼的驗證,但是執行順序action執行完resolve以後,getter還沒有執行,所以用getter獲取的userinfo變數為空,點選登陸顯示驗證碼輸入錯誤,然後由於頁面沒有重新整理,並且getter的輔助函式檢測到userinfo改變,驗證碼儲存到status,再次點選登陸以後登陸成功。

總結一下就是:驗證的時候直接呼叫action並且回傳狀態給變數,不要用getter獲取state。

6.手機號碼正則判斷驗證是否為11位,是,則登陸按鈕變色

7.對賬號密碼進行狀態管理,儲存到status並且將user_id儲存到localstore中

8.前端登陸攔截(鉤子函式)

原思路如下:

1.token:與cookie進行驗證相比更加安全

組成:header payload 簽名

生成形式:header和payload進行base64加密,將密文用句號鏈結起來傳送給伺服器端,服務端用金鑰進行hs256加密生成簽名,返回給客戶端形成token

校驗:伺服器端對header payload進行base64解密,知道用了hs256演算法加密,對伺服器端金鑰進行hs256加密與簽名進行比對。

2.用router的鉤子函式對需要token的身份認證進行判斷,並且用axios對所有的請求響應進行攔截,如果需要token,則在header首部加入: config.headers.authorization = `token $`;

但是這個專案主要是對前端的東西用vue進行重構,後端不打算動它先,token沒有生成,所以對token判斷改為是否登陸的login進行判斷,所以只呼叫了router的鉤子函式對router進行判斷攔截,簡化了一些流程。

9.導航欄點選以後的樣式顯示

使用 .router-link-active

10.退出登入並且回到登陸頁

1.@click 子元件傳給父元件無效解決方案

在vue學習中遇到給router-link 標籤新增事件@click 、@mouseover等無效的情況

根據vue2.0官方文件關於父子元件通訊的原則,父元件通過prop傳遞資料給子元件,子元件觸發事件給父元件。但父元件想在子元件上監聽自己的click的話,需要加上native修飾符。

所以如果在想要在router-link上新增事件的話需要@click.native這樣寫

2.把使用者id從localstore中刪除,並且login置為false

登陸頁:

11.vue-cli npm引入bootstrap,並且進行相應的配置

12.輪播圖元件化

新增bootstrap4 bootstrap-vue,bootstrap-loader

13.小banner引用問題,需要把放在static中而不是asset中。

坑點:如果放在assets中src=「」可以顯示,而onmouseover="this.src=''"顯示錯誤

14.新增知乎api,獲取介面資料

15.時間過濾器-20180401-->2023年04月02日

16.敬語元件化,並且傳值判斷

17.修改footer樣式

18.解決顯示的403問題。狀態碼403

但有時我們會發現 引入的外部鏈結也是可以正常展示的,那是因為先訪問了外部鏈結展示過後,被瀏覽器快取了下來,並未正常引用。

找個專門快取的**,去掉的https://,加到後面進行快取

載入速度有點慢,點選更多的時候要等一下才能載入出來

getimage(url)

/*console.log("test");*/}

19.把swiper小輪播圖改為bootstrap小輪播圖

20.修改子元件style 去除bootstrap小輪播圖藍色邊框,以及indicators樣式

全域性樣式可以修改子元件的樣式只能修改該元件的樣式,用於避免樣式的汙染

21.旅遊頁完成。

22.旅遊交通頁點選title,返回乙個judge值,用於判斷顯示兩個不同的頁面

23.租車排行榜完成

我用axios在自己的專案上試了一下,是可以的,**如下:

axios.get('/api3/hello').then(res=>console.log("res.data:"+res.data))

.catch(err => console.log(err))

別把自己變成了「二等公民」

上週參加乙個 審查會,在會上發現了設計上的乙個很嚴重的錯誤。於是,我提了好幾個問題,想知道為什麼會出現這一錯誤。但是,我的同事告訴我這都是印度團隊做的設計。需要提供的乙個背景資訊是,這個專案是我所在的研發中心與印度的研發中心協同開發的。對於同事的這種回答,我能想到的是 可能同事將自己當做 二等公民 ...

別把自己變成了「二等公民」

上週參加乙個 審查會,在會上發現了設計上的乙個很嚴重的錯誤。於是,我提了好幾個問題,想知道為什麼會出現這一錯誤。但是,我的同事告訴我這都是印度團隊做的設計。需要提供的乙個背景資訊是,這個專案是我所在的研發中心與印度的研發中心協同開發的。對於同事的這種回答,我能想到的是 可能同事將自己當做 二等公民 ...

別把自己變成了「二等公民」

上週參加乙個 審查會,在會上發現了設計上的乙個很嚴重的錯誤。於是,我提了好幾個問題,想知道為什麼會出現這一錯誤。但是,我的同事告訴我這都是印度團隊做的設計。需要提供的乙個背景資訊是,這個專案是我所在的研發中心與印度的研發中心協同開發的。對於同事的這種回答,我能想到的是 可能同事將自己當做 二等公民 ...