1. 程式人生 > >關於Vue的一些小淺見,小問題與解決方法

關於Vue的一些小淺見,小問題與解決方法

1.Vue-router的重定向以及別名運用:

當我們開啟index.html的時候,如果"/"路由下有需要展現子元件,那麼就需要用到重定向或者別名

具體可檢視vue-router文件中的“重定向或者別名”:https://router.vuejs.org/zh-cn/essentials/redirect-and-alias.html

下面是我在專案中的router配置demo:


這裡是使用了alias別名的方法,使得當我們訪問首頁的時候,url是仍然儲存{path:'/'}但是它的路由匹配已經是{path:'/searchPage'}了。


如果使用的是重定向,那麼雖然訪問首頁的效果是一致的,但是首頁的url將會是{path:'/searchPage'},造成貌似無首頁路由的樣子。當然,具體要用哪一個還是根據具體需要來決定。

2.vue中它的updated鉤子使用起來和watch貌似很像?

updated鉤子它的官方文件解釋就是:元件更新之後,那麼顧名思義,當前元件的資料傳送變化的時候(任何一個當前元件data中的資料)就會觸發updated。

watch呢它主要用於監聽一個數據,基本用在一個數據影響多個數據的情況下,這裡不得不提到computed計算屬性了,它正好和watch相反,是一個數據受多個數據影響;watch監聽資料如果不設定“deep”深度監聽的話,是無法監聽到物件內部的資料變化。

在觸發的先後上,watch會先觸發,因為watch觸發是dom還未更新,updated實在元件更新之後,所以在dom更新後才會觸發。

所以顯而易見,updated一般用在比如使用者資訊的任何一個資訊發生改變,就更新其他地方的資訊等等,而watch則是當某個資料改變會觸發某些事件或某些改變等等,那麼我們用它們的時候就要根據具體需求而定咯。

3、vue中使用axios的post請求時候遇到400

其實遇到400很多時候就是語法上的錯誤,post和get在axios的封裝中掛載的方式有不同,

我在用get的時候很正常沒有報錯,但當不改其他地方,只是換成post的時候傳遞引數,引數的掛載方式需要和get一樣直接掛載到url之後,get方法會自動掛載,post方法卻不會,所以這時候就需要用到一個npm包—qs。

qs的作用是把物件形式的引數轉成類似get那樣直接掛載到url之後的那個字串,這樣就和get的url沒什麼區別就可以了。

個人淺見,如有錯誤,請評論留言,感謝(不定期更新中...)