vue 快速入門的三個小例項

發表於2017-08-25

1.前言

用vue做專案也有一段時間了,之前也是寫過關於vue和webpack構建專案的相關文章,大家有興趣可以去看下webpack+vue專案實戰(一,搭建執行環境和相關配置)(這個系列一共有5篇文章,這是第一篇,其它幾篇文章連結就不貼了)。但是關於vue入門基礎的文章,我還沒有寫過,那麼今天就寫vue入門的三個小例項,這三個小例項是我剛接觸vue的時候的練手作品,難度從很簡單到簡單,都是入門級的。希望能幫到大家更好的學習和了解vue,也是讓自己能夠複習一下vue。如果發現文章寫得有什麼不好,寫錯了,或者有什麼建議!歡迎大家指點迷津!

1.本篇文章使用的vue版本是2.4.2,大家要注意版本問題
2.現在我也是假設您有基礎的html,css,javascript的知識,也已經看過了官網的基本介紹,對vue有了一個大概的認識了,瞭解了常用的vue指令(v-model,v-show,v-if,v-for,v-on,v-bind等)!如果剛接觸前端的話,你看著文章可能會蒙圈,建議先學習基礎,掌握了基礎知識再來看!
3.下面的例項,建議大家邊看文章邊動手做!這樣思路會非常清晰,不易混亂!也不會覺得文章長!如果只看文章,你可能未必會看完,因為文章我講得比較細,比較長!

2.什麼是vue

vue是現在很火的一個前端MVVM框架,它以資料驅動和元件化的思想構建,與angular和react並稱前端三大框架。相比angular和react,vue更加輕巧、高效能、也很容易上手。大家也可以移步,看一下vue的介紹和核心功能官網介紹。簡單粗暴的理解就是:用vue開發的時候,就是運算元據,然後vue就會處理,以資料驅動去改變DOM(不知道有沒有理解錯,理解錯了指點下)。
下面就是一個最簡單的說明例子

程式碼如下

js

栗子

相信也不難理解,就是input繫結了message這個值,然後在input修改的時候,message就改了,由於雙向繫結,同時頁面的html({{ message }})進行了修改!
好,下面進入例子學習!

3.選項卡

執行效果

vue 快速入門的三個小例項

原理分析和實現

這個很簡單,無非就是一個點選切換顯示而已。但是大家也要實現。如果這個看明白了,再看下面兩個!這個例項應該只是一個熱身和熟悉的作用!

這個的步驟只有一步,原理也沒什麼。我直接在程式碼打註釋,看了註釋,大家就明白了!

完整程式碼

 

4.統計總價

執行效果

vue 快速入門的三個小例項

原理分析和實現

首先,還是先把佈局寫好,和引入vue,準備vue例項,這個不多說,程式碼如下

然後準備下列表資料,根據下面表格的箭頭

vue 快速入門的三個小例項

所以大家就知道嗎,下面的資料大概是漲這樣

準備了這麼多,大家可能想到,還缺少一個,就是記錄產品是否有選中,但是這個欄位,雖然可以在上面那裡加,但是意義不大,比如在平常專案那裡!後臺的資料不會這樣返回,資料庫也不會有這個欄位,這個欄位應該是自己新增的。程式碼如下

步驟1

為了著重表示我修改了什麼地方,程式碼我現在只貼出修改的部分,大家對著上面的佈局,就很容易知道我改的是什麼地方了!下面也是這樣操作!

點選增加和減少按鈕(箭頭指向地方),所屬列的金額改變(紅框地方)
vue 快速入門的三個小例項

執行步驟1之前,要先把列表的資料給鋪出來。利用v-for指令。程式碼如下

這樣,列表的資料就有了!

vue 快速入門的三個小例項

也可以發現,vue 快速入門的三個小例項這兩個按鈕的功能已經實現了,後面的金額也會發生變化!是不是感到很驚喜!其實這裡沒什麼特別的,就是因為輸入框利用v-model繫結了數量(pro_num),然後兩個按鈕分別新增了事件@click="item.pro_num--"和@click="item.pro_num++"。比如剛開始pro_num是3,點選vue 快速入門的三個小例項pro_num就變成2,點選vue 快速入門的三個小例項
pro_num就變成4,然後後面的金額會改改,是因為{{item.pro_price*item.pro_num}}。只要pro_price或者pro_num的值改變了,整一塊也會改變,檢視就會重新整理,我們就能看到變化(這些事情是vue做的,這就是MVVM的魅力,資料驅動檢視改變)。

步驟2

點選所屬列選擇按鈕(箭頭指向地方),總計的金額(紅框地方)和已選產品的列數(藍框地方)和全選(黃框地方)會改變(如果已經全選了,全選按鈕自動變成全選,如果沒有全選,全選按鈕,自動取消全選)!

vue 快速入門的三個小例項

首先,選擇與取消選擇,在這裡只有兩個操作(其實只有一個:改變這條記錄的select欄位)。

vue 快速入門的三個小例項

然後改變vue 快速入門的三個小例項,如果這條記錄selectfalse,就顯示vue 快速入門的三個小例項,否則就顯示vue 快速入門的三個小例項
程式碼如下

其實就是等於新增了@click="item.select=!item.select" :class="{'check-true':item.select}"這裡。點選這個,這條資料的select欄位就取反(true->false或者false->true)。然後:class="{'check-true':item.select}",就會根據這條資料的select欄位進行判斷,是否新增check-true類名,如果select欄位為true,就新增類名,顯示vue 快速入門的三個小例項。否則不新增類名,顯示
vue 快速入門的三個小例項

然後,vue 快速入門的三個小例項全選按鈕,是否變成vue 快速入門的三個小例項。這裡用一個computed(計算屬性)就好。程式碼如下

js

程式碼我解釋下,就是計算屬性中,定義的isSelectAll依賴productList。只要productList改變,isSelectAll的返回值就會改變,然後:class="{'check-true':isSelectAll}"根絕isSelectAll返回值是否新增'check-true'類名,顯示對應的樣式!
最後,vue 快速入門的三個小例項,這裡的多少件產品和總價,也是使用計算屬性,有了上一步的基礎,給出程式碼,大家一看就明白了!
html

js

程式碼很簡單,html根據getTotal返回值顯示資料,getTotal依賴productList的資料,只要productList改變,返回值會改變,檢視也會改變!

vue 快速入門的三個小例項

步驟3

點選全選按鈕(箭頭指向部分),會自動的對產品進行全選或者取消全選,下面的總計也會發生改變

vue 快速入門的三個小例項
做到這一步,大家應該知道,全選或者取消全選,就是改變記錄的select。但是怎麼知道現在的列表有沒有全選呢?這個很賤,不需要在操作函式(全選與取消全選函式)裡面遍歷,大家應該還記得第二步的計算屬性isSelectAll(為true就是全選,否則不是全選),把這個傳進操作函式就好,然後操作函式,根據引數,決定執行全選,還是取消全選操作。程式碼如下!

html

js

vue 快速入門的三個小例項

步驟4

點選刪除產品,會刪除已經選中的,全選按鈕和下面的總計,都會變化!點選每條記錄後面的刪除,會刪除當前的這條記錄。全選按鈕和下面的總計,也都會變化!

vue 快速入門的三個小例項

首先,點選刪除產品,刪除已經選中。這個大家知道了怎麼做了!就是遍歷productList,如果哪條記錄的select為true,就刪除。
然後,點選每條記錄後面的刪除,刪除當前的這條記錄。這個在html遍歷productList的時候。順便帶上索引,然後把索引當成引數,傳進操作函式,然後根據索引引數,刪除productList的哪一條記錄。即可實現!程式碼如下!

html

js

完整程式碼

樣式圖片

vue 快速入門的三個小例項

5.todoList

執行效果

vue 快速入門的三個小例項

原理分析和實現

首先,還是先把佈局寫好,和引入vue,準備vue例項,這個不多說,程式碼如下

佈局有了,相當於一個骨架就有了,下面實現功能,一個一個來

步驟1

輸入並回車,多一條記錄。下面的記錄文字也會改變

vue 快速入門的三個小例項

首先,大的輸入框回車要新增紀錄,那麼輸入框必須繫結一個值和一個新增紀錄的方法。
程式碼如下:
然後,下面的記錄也要改變,所以,下面的記錄也要幫一個值,因為這個記錄可能會有多個,這個值就是一個陣列,也可以看到,記錄除了名稱,還有記錄是否完成的狀態,所以,繫結記錄的這個值肯定是一個物件陣列!程式碼如下
最後,記錄文字vue 快速入門的三個小例項要改變。這個只是一個當前記錄的長度即可!

為了著重表示我修改了什麼地方,程式碼我現在只貼出修改的部分,大家對著上面的佈局,就很容易知道我改的是什麼地方了!下面也是這樣操作!

html程式碼

js程式碼

測試一下,沒問題

vue 快速入門的三個小例項

步驟2

點選切換,下面記錄會改變

vue 快速入門的三個小例項

看到三個選項,也很簡單,無非就是三個選擇,一個是所有的目標,一個是所有已經完成的目標,一個是所有沒完成的目標。
首先.新建一個新的變數(newList),儲存prolist。遍歷的時候不再遍歷prolist,而是遍歷newList。改變也是改變newList。
然後.選擇所有目標的時候,顯示全部prolist,把prolist賦值給newList。
然後.選擇所有已經完成目標的時候,只顯示prolist中,status為true的目標,把prolist中,status為true的項賦值給newList,
最後.選擇所有未完成目標的時候,只顯示status為false的目標,把prolist中,status為false的項賦值給newList。

程式碼如下

html

js

執行結果

vue 快速入門的三個小例項

步驟3

紅色關閉標識,點選會刪除該記錄。前面按鈕點選會切換該記錄完成狀態,顏色也改變,記錄文字也跟著改變

vue 快速入門的三個小例項

首先點選紅色關閉標識,點選會刪除該記錄。這個應該沒什麼問題,就是刪除prolist的一條記錄!
然後前面按鈕點選會切換該記錄完成狀態。這個也沒什麼,就是改變prolist的一條記錄的status欄位!
最後記錄文字的改變,就是記錄prolist中status為false的有多少條,prolist中status為true的有多少條而已

html程式碼

js

執行結果

vue 快速入門的三個小例項

步驟4

文字雙擊會出現輸入框,可輸入文字,如果回車或者失去焦點,就改變文字,如果按下ESC就恢復原來的文字

vue 快速入門的三個小例項

首先.雙擊出現輸入框,就是雙擊文字後,給當前的li設定一個類名(‘eidting’),然後寫好樣式。當li出現這個類名的時候,就出現輸入框,並且隱藏其它內容。
然後.回車或者失去焦點,就改變文字這個只需要操作一個,就是把類名(‘eidting’)清除掉。然後輸入框就會隱藏,其它內容顯示!
最後.按下ESC就恢復原來的文字,就是出現輸入框的時候,用一個變數(‘beforeEditText’)先儲存當前的內容,然後按下了ESC,就把變數(‘beforeEditText’)賦值給當前操作的值!

程式碼如下:

html

css(加上)

js

執行結果

vue 快速入門的三個小例項

還有一個小細節,大家可能注意到了,就是雙擊文字,出來輸入框的時候,還要自己手動點選一下,才能獲得焦點,我們想雙擊了,輸入框出來的時候,自動獲取焦點,怎麼辦?自定義指令就行了!

然後html 呼叫指令

完整程式碼

6.小結

好了,三個小例項在這裡就說完了!別看文章這麼長,其實都是基礎,可能是我比較囉嗦而已!如果大家能熟透這幾個小例項,相信用vue做專案也是信手拈來。基礎的語法在這裡了,有了基礎,高階的寫法也不會很難學習!如果以後,我有什麼要分享的,我會繼續分享。最後一句老話,如果覺得我哪裡寫錯了,寫得不好,歡迎指點!

相關文章