今天是劉小愛自學Java的第137天。
感謝你的觀看,謝謝你。
學習計劃安排如下:
Vue的深入學習,emm準確地說還不能算是深入學習,我有點高估自己的學習進度了。本來打算兩天時間做一個基礎入門的,畢竟教程也就一天的內容,看來計劃趕不上變化。vue中三大常用屬性的小結、生命周期鉤子的了解,以及指令的初步接觸。指令有點多,只能留到明天繼續補全了。一、回顧與生命周期
補充說明三大屬性,當然vue肯定不止這些,只不過時間有限,只學下最常見的。
1回顧
每次new一個Vue實例都需要關聯模板,Vue會基於此模板進行視圖渲染。
①el屬性:指定視圖模板
這裡是通過el+id選擇器指定視圖模板,例子中也就是id為app的div標籤。
當然還可以通過template來指定視圖模板,這種方式我們暫且就不學了。
②data屬性:指定數據模型
data也就對應著數據模型,數據相關的都可以放在這裡面。
③methods屬性:指定方法模型
注意是methods,後面有個s不要忘記了,一開始我直接寫的method,就出了問題。
其實這也很好理解,methods裡面是存放方法的,肯定不止一個,故用複數形式。
例子中helloVue是方法名,其中function可以省略,直接寫一個helloVue方法。
2生命周期鉤子
鉤子,就可以將其理解成回調函數,Vue為生命周期中的每個狀態都設置了鉤子函數。
每當Vue實例處於不同的生命周期時,對應的方法就會被觸發調用,其中生命周期有好幾個狀態,我們只學最常見的兩個:
①created
代表在vue實例創建後,通過控制臺我們可以發現:在創建vue實例之後,Vue才會調用create方法。
②beforeCreate
代表在vue實例創建之前,通過控制臺我們可以發現:在創建vue實例之前,Vue會先調用beforeCreate方法。
注意:這兩個函數這裡是用的省略寫法,省略了function這個關鍵字。
3關於this
this和Java中的意思是差不多的,this用一句話說明就是:「誰調用我,它就是誰。」
我們做一個測試,同時引入幾個知識點:
①setTimeout()
設置一個定時器,有兩個參數:第一個參數為一個函數,第二個參數為定時時間,例子中也就是2000毫秒後執行函數。
此時this指的是Window對象,因為在js中設定了定時器,時間到了後,會由window去調用前面的函數並執行,所以this指的就是它。
②setTimeout()箭頭函數
該方式為ES6中的語法,這塊我們沒有專門學,知道有這個函數即可。
同樣是setTimeout()方法,只不過寫法不同,為何這裡的this指的又是當前vue對象本身?
箭頭函數底層做了處理,將其轉化成了對應的vue對象,顯然這種方式是我們所需要的,以後基本都以箭頭函數這種寫法為主。
二、插值閃爍
有時使用電腦或者手機,因為網速較慢,頁面加載很慢會出現看到源碼的情況,做個測試:
在瀏覽器中設置網絡為3G網絡,在刷新頁面時會先看到{{name}},大約2秒後,頁面加載完成才會顯示正常的數據。
這個也好理解,頁面是從上到下執行的:
當頁面加載到div標籤時,JS還未加載到,所以name的值是多少並不知道。當頁面加載完畢後才能顯示正確的數據。這種情況就叫做差值閃爍,以差值閃爍為例子,引出對於「指令」的學習。
三、指令
什麼是指令?
指令是指帶有 v-前綴的特殊屬性。
例如在回顧中的v-model,代表了就是view和model的雙向綁定。
那差值閃爍的問題怎麼解決呢?
1v-text和v-html
①指令:v-text
將數據輸出到元素內部,如果輸出的數據有HTML代碼,會作為普通文本輸出。
②指令:v-html
將數據輸出到元素內部,如果輸出的數據有HTML代碼,會被渲染。
這個就和jQuery中的html方法太像了。
2v-model
這個指令我們昨天就接觸過,回顧中也有,是應用在input標籤中的text類型中。
其實目前v-model的可使用元素有:
input,select,textarea,checkbox,radio,components(自定義組件)
除了最後一項,其它都是表單的輸入項,我回顧了一下我以前的form表單筆記。
vue中將單選框radio,複選框checkbox單獨拎出來了,這些本來是屬於input的。
我們以複選框作為一個例子。
①checkbox
這就是一個複選框,用v-model指令將它們一一和hobbys這個屬性綁定。
hobbys.join()可以將獲取的元素以參數內容的形式隔開。
②hobbys:[]
這個符號所表示的就是一個數組,和Java中是一樣的。
其中值得注意的是:
多個CheckBox對應一個model時,model的類型是一個數組;單個checkbox值是boolean類型。
最後
時間受限,剩下的只能明天接著說了,謝謝你的觀看。
如果可以的話,麻煩幫忙點個讚,謝謝你。