當前位置:
首頁 > 知識 > vue快速入門的三個小實例

vue快速入門的三個小實例

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(不知道有沒有理解錯,理解錯了指點下)。

下面就是一個最簡單的說明例子

代碼如下

html

js

栗子

相信也不難理解,就是 input 綁定了 message 這個值,然後在 input 修改的時候, message就改了,由於雙向綁定,同時頁面的html( {{ message }} )進行了修改!

好,下面進入例子學習!

3.選項卡

運行效果

GIF/194K

原理分析和實現

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

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

完整代碼

4.統計總價

運行效果

GIF/474K

原理分析和實現

首先,還是先把布局寫好,和引入vue,準備vue實例,這個不多說,代碼如下

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

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

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

步驟1

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

點擊增加和減少按鈕(箭頭指向地方),所屬列的金額改變(紅框地方)

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

這樣,列表的數據就有了!

GIF/38K

也可以發現,

這兩個按鈕的功能已經實現了,後面的金額也會發生變化!是不是感到很驚喜!其實這裡沒什麼特別的,就是因為輸入框利用v-model綁定了數量( pro_num ),然後兩個按鈕分別添加了事件 @click="item.pro_num--" 和@ click="item.pro_num++" 。比如剛開始pro_num是3,點擊 , pro_num 就變成2,點擊 , pro_num 就變成4,然後後面的金額會改改,是因為 {} 。只要pro_price或者pro_num的值改變了,整一塊也會改變,視圖就會刷新,我們就能看到變化(這些事情是vue做的,這就是MVVM的魅力,數據驅動視圖改變)。

步驟2

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

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

然後改變 ,如果這條記錄 select 為 false ,就顯示 ,否則就顯示 。

代碼如下

其實就是等於添加了 @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,就添加類名,顯示 。否則不添加類名,顯示

然後,

全選按鈕,是否變成 。這裡用一個computed(計算屬性)就好。代碼如下

html

js

代碼我解釋下,就是計算屬性中,定義的isSelectAll依賴productList。只要productList改變,isSelectAll的返回值就會改變,然後 :class="{ check-true :isSelectAll}" 根絕isSelectAll返回值是否添加 check-true 類名,顯示對應的樣式!

最後,

這裡的多少件產品和總價,也是使用計算屬性,有了上一步的基礎,給出代碼,大家一看就明白了!

html

js

代碼很簡單,html根據getTotal返回值顯示數據,getTotal依賴productList的數據,只要productList改變,返回值會改變,視圖也會改變!

GIF/97K

步驟3

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

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

html

js

GIF/98K

步驟4

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

首先,點擊刪除產品,刪除已經選中。這個大家知道了怎麼做了!就是遍歷productList,如果哪條記錄的select為true,就刪除。

然後,點擊每條記錄後面的刪除,刪除當前的這條記錄。這個在html遍歷productList的時候。順便帶上索引,然後把索引當成參數,傳進操作函數,然後根據索引參數,刪除productList的哪一條記錄。即可實現!代碼如下!

html

js

完整代碼

樣式圖片

5.todoList

運行效果

GIF/602K

原理分析和實現

首先,還是先把布局寫好,和引入vue,準備vue實例,這個不多說,代碼如下

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

步驟1

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

首先,大的輸入框回車要添加紀錄,那麼輸入框必須綁定一個值和一個添加紀錄的方法。

然後,下面的記錄也要改變,所以,下面的記錄也要幫一個值,因為這個記錄可能會有多個,這個值就是一個數組,也可以看到,記錄除了名稱,還有記錄是否完成的狀態,所以,綁定記錄的這個值肯定是一個對象數組!

最後,記錄文字

要改變。這個只是一個當前記錄的長度即可!

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

html代碼

js代碼

測試一下,沒問題

GIF/48K

步驟2

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

看到三個選項,也很簡單,無非就是三個選擇,一個是所有的目標,一個是所有已經完成的目標,一個是所有沒完成的目標。

首先.新建一個新的變數(newList),儲存prolist。遍歷的時候不再遍歷prolist,而是遍歷newList。改變也是改變newList。

然後.選擇所有目標的時候,顯示全部prolist,把prolist賦值給newList。

然後.選擇所有已經完成目標的時候,只顯示prolist中,status為true的目標,把prolist中,status為true的項賦值給newList,

最後.選擇所有未完成目標的時候,只顯示status為false的目標,把prolist中,status為false的項賦值給newList。

代碼如下

html

js

運行結果

GIF/31K

步驟3

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

首先點擊紅色關閉標識,點擊會刪除該記錄。這個應該沒什麼問題,就是刪除prolist的一條記錄!

然後前面按鈕點擊會切換該記錄完成狀態。這個也沒什麼,就是改變prolist的一條記錄的status欄位!

最後記錄文字的改變,就是記錄prolist中status為false的有多少條,prolist中status為true的有多少條而已

html代碼

js

運行結果

GIF/85K

步驟4

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

首先.雙擊出現輸入框,就是雙擊文字後,給當前的li設置一個類名(『 eidting 』),然後寫好樣式。當li出現這個類名的時候,就出現輸入框,並且隱藏其它內容。

然後.回車或者失去焦點,就改變文字這個只需要操作一個,就是把類名(『 eidting 』)清除掉。然後輸入框就會隱藏,其它內容顯示!

最後.按下ESC就恢復原來的文字,就是出現輸入框的時候,用一個變數(『 beforeEditText 』)先保存當前的內容,然後按下了ESC,就把變數(『 beforeEditText 』)賦值給當前操作的值!

代碼如下:

html

css(加上)

js

運行結果

GIF/121K

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

然後html 調用指令

完整代碼

6.小結

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


點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 優才學院 的精彩文章:

面試官問:PC端與移動端在UI設計方面什麼區別
30分鐘使用Node實現一個命令行程序
寫代碼怎能不會這些Linux命令?
谷歌是如何構建Web框架的
「吃青春飯」的程序員們:再過 5 年,你還在寫代碼嗎?

TAG:優才學院 |

您可能感興趣

Vue.js2.0從入門到放棄-入門實例(一)
Vue.js 2.0從入門到放棄-入門實例(二)
三月內容-API實例入門
Servlet 實例
性能竟然再提升一倍!Redis的一個實例有多快?
VBScript 實例
用Python寫一個模擬qq聊天小程序的代碼實例
Web Service 實例
jQuery UI 實例
兩個簡單的CSRF漏洞實例
asp.net開發實例
jQuery Mobile 實例
XLink 實例
SVG 的實例
超Mask RCNN速度4倍,僅在單個GPU訓練的實時實例分割演算法
XPointer 實例
PHP MySql 分頁實例
AWS更新C5實例,推出更強的虛擬化實例以及裸機實例
PS教程 PhotoShop快速蒙版的應用實例教程
RDF 的實例