最近提了新的需求,讓我去看一下vue element admin,由於之前並沒有接觸過vue,所以看起來有點雲里霧里的,看的都懂,寫起來又是另一回事了。
這邊記錄下學習過程。
我的學習資料主要是vue的官方文檔,以及b站的一個視頻。
這個視頻還不錯,挺細的,零基礎看應該沒問題,我先看的文檔,所以視頻這塊基本上是倍速,加快進。
vue是中國人開發的,官方文檔也好理解,所以看的比較多。
學習前,先問了大佬需要掌握的一些入門知識。
學習過程應該是vue基礎知識-->vuex,vue router-->vue element。
vue element是vue的一個組件庫,個人感覺可能不用太花時間學習。
由於之前沒有接觸過vue,所以這里vue的基礎知識可能記載的比較多。
首先是vue的生命周期,主要之前我寫android的,所以有點在意,官方的圖我就不上了,這里說一下個人的理解。
首先是初始化一個vue,然后執行對應的鈎子函數,created,mounted,updated,destory。這四個還有對應的before,如beforecreate函數。
帶before前綴的函數比不帶的要稍早些。
所以這個流程是create,然后mounted,之后就是模版渲染,渲染完了之后根據數據不斷的update。
當數據被修改,先執行beforeupdate,然后虛擬Dom重新渲染,然后在updated。
當然也可以從字面上去理解,更新前,和已更新。
接下來是代碼這邊的,我就記一些要點,這些要點都要自己寫html頁面寫過之后才可以理解的。
首先是v-bind,官網給了一個鼠標懸停顯示時間的例子,這個我理解為綁定html屬性,當然他可以搭配別的方法玩出花來。這里拋個磚,加個v-on就可以實現根據不同事件顯示不一樣的屬性。
v-on,可用@代替,vue中的事件監聽,也是比較重要的東西。
v-model,vue中的數據綁定,可以綁定表單數據,用處數據處理應該會比較方便。
v-if,v-else,v-else-if。這三個是vue的條件分支語句。注意,當他用於是否顯示某個div的時候,可用v-show代替。
v-for,vue的循環。這個可以在前端處理對象信息。比如說在data中綁定了一個user對象,可以用v-for來循環獲取每一個user對象。
v-once,這個不知道能干什么,只獲取一次數據,之后不管。
v-html,可以把html內容插入到網頁中。這樣說可能會有點迷糊。可以看作,后台傳了一個html內容過來,把它插進對應的div里。
v-text,同v-html,插入文本。
v-show,控制頁面元素是否隱藏。原理是將display屬性值變為none,修改的是css屬性,而如果用v-if來操控的話是涉及了js了,效率上說肯定是css比js好。
當然還有computed和watch。computed用於計算屬性,它里面的函數是一個對象。watch是監控屬性變化。
vue更改樣式的方法,通過v-bind綁定html中的class屬性進行更改。或者,用computed,這部分沒仔細看,視頻教程中有說。
vue實現效率更快的原因是虛擬Dom和diff算法。所謂虛擬Dom就不是真正的Dom,Vue頁面上的元素都是虛擬Dom,當你修改一個div的寬高時,diff算法會算出這個虛擬Dom修改前后的區別,然后在虛擬Dom上直接進行修改。相對在Dom樹上進行修改來說,效率快很多。
到此,vue基礎知識我覺得看的差不多了,像組件那塊我就簡單的看了下,覺得還是用到的時候再深入看看。
這邊開始講vue router。
這塊主要講的是路由,他有一個router文件用來分發路由,這塊我以前接觸過django感覺有點類似,匆匆看一下就算了。然后還有一個就是路由傳值過去。
這邊有兩個方法,一個是params和query。后者傳的值會在url中明文顯示。
這兩種方法在推路徑的時候語句也不相同,這塊login我實在路由表里配好了,可以仔細看一下這兩句的區別,query用的是path,params用的是name。
this.$router.push({path: '/Login', query: {username: this.message1}}) this.$router.push({name: 'login', params: {username: this.username}})
這邊接受的話就比較好理解了。
this.$route.query.username this.$route.params.username
這樣即表示第一個頁面的username參數。
感覺到了這一塊路由應該算看完了。
然后是vuex,看到后面有些浮躁,我好像也沒找到一些比較好的資料來講這塊的,所以簡單的理解了下他的概念。
他在項目的目錄為store。有四種屬性(不知道這么說對不對)。
state,倉庫,把數據存在這里面。
getters , 把倉庫里的數據拿出來。
mutations , 更新getters數據,(同步更新)
actions, 異步操作(更新數據)
他還有一個module,可以把這四個整合起來,作為一個對象。
這些我大概了看了一整天整理下來的,要學習vue element admin可能只是微不足道的前置知識吧。
vue element admin的作者也開了博客講這個,可以參考下。