Vue.js介紹及基本指令
阿新 • • 發佈:2018-12-19
什麼是vue
- Vue.js是目前最火的一個前端框架,而React.js是最流行的一個前端框架(React除了可以開發網站,還可以開發手機App,vue語法也是可以開發手機app,需要藉助於Weex)
- Vue.js是前端的主流框架之一,和Angular.js、React.js並稱為前端三大主流框架
- vue.js是一套構建使用者介面的框架,只關注檢視層,它不僅容易上手,還便於與第三方庫或既有專案整合。
- 在vue中,能夠幫助我們減少不必要的DOM操作,提高渲染效率,雙向資料繫結(通過框架提供的指令,我們前端只需要關心資料的業務邏輯,不用再關心DOM是如何渲染的)
框架和庫的區別
- 框架:是一套完整的解決方案,對專案的侵入性較大,如果專案需要更換框架,則需要重新架構整個專案。
- 庫(外掛):提供某個小功能。對專案的侵入性較小。
前端中的MVVM思想
- MVVM是前端檢視層的概念
- MVVM是前端檢視層的分層開發思想,主要把每個頁面,分成了M,V,VM,其中VM是MVVM的核心思想,VM是M和V之間的排程者。
- M:儲存的是每個頁面中單獨的資料(後端返回的資料)
- V:頁面中的html程式碼
- VM:分割了M和V
- M和V互不可見,若要進行互動,必須通過VM
- 前端中使用MVVM,主要是為了我們更方便開發,因為MVVM提供了資料的雙向繫結(由VM提供)
Vue中實現MVVM的基本程式碼
<body>
<!-- 將來new的Vue例項會控制這個元素中的所有內容 -->
<!-- Vue 例項所控制的這個元素區域,就是我們的 view層 -->
<div id="app">
<p>{{msg}}</p>
</div>
</body>
<script src="vue-2.4.0.js"></script>
<script>
/* 當我們匯入包之後,在瀏覽器的記憶體中,就多了一個Vue建構函式 */
/* 建立一個vue的例項 也就是VM */
var vm = new Vue({
// el:表示當前new 的這個Vue例項,要控制頁面上的哪個區域
el: '#app',
data: {// data 屬性中存放的是el中要用到的資料,也就是Model
// 通過Vue提供的指令,很方便的就能把資料渲染到頁面上
msg: '歡迎學習Vue'
// 前端的Vue之類的框架,不提倡我們去手動操作DOM元素了
}
});
</script>
Vue指令
- v-cloak
用於解決網速過慢導致的插值表示式閃爍的問題 - v-text
與插值表示式的作用一樣,用於渲染資料- 預設v-text是沒有閃爍問題的
- 標籤中,插值表示式{{ data }}的前後可以放任意內容,而使用v-text指令後,標籤裡其它內容都不會被解析
- v-html
用於渲染含有html程式碼的資料 - v-bind
將資料與屬性的值繫結
縮寫:title=‘msg’ - v-on
用來繫結事件的
縮寫@click:‘show’ - v-model
用來實現資料的雙向繫結,只能運用在表單元素中,與表單中的value值雙向繫結。而v-bind只能實現M->V的單向繫結。 - v-for
該指令可以用來遍歷陣列、物件、或者數字迭代- v-for使用注意事項
1. 在元件中,使用v-for迴圈的時候,或者在一些特殊情況中,如果v-for有問題,必須在使用v-for的同時,指定唯一的字串/數字 型別的 :key值
- v-for使用注意事項
- v-if 和v-show的區別
- 使用v-if時,每次都將刪除或建立元素,而使用v-show,只是將元素設定為display:none/block。
- v-if有較高的效能消耗,而v-show有較高的初始渲染消耗。
- 如果元素涉及到頻繁的切換,最好不好使用v-if,推薦使用v-show
- 如果元素可能永遠或者很少會顯示出來被使用者看到,則推薦使用v-if
v-on中事件修飾符
- .stop :阻止冒泡
- .prevent:阻止預設事件
- .capture:新增事件偵聽器時使用事件捕獲模式
- .self:當事件在該元素本身(比如不是子元素)觸發時觸發回撥
- .once:事件只觸發一次