Vue.js 教程 -- 實例講解


一、 Vue.js是什么

Vue.js是一套構建用戶界面(view)的MVVM框架。Vue.js的核心庫只關注視圖層,並且非常容易學習,非常容易與其他庫或已有的項目整合。

1.1 Vue.js的目的

Vue.js的產生核心是為了解決如下三個問題:

  1. 解決數據綁定的問題;
  2. Vue.js框架生產的主要目的是為了開發大興單頁面應用(SPA:Single Page Application)

Angular.js中對PC端支持的比較良好,但是對移動端支持就一般。而Vue.js主要支持移動端,也支持PC端。

3. 它還支持組件化。也就是可以將頁面封裝成若干個組件,采用積木式編程 ,這樣是頁面的復用度達到最高(支持組件化)。

1.2 Vue.js特性

  1. MVVM模式

M: model  業務模型,用處:處理數據,提供數據

V: view    用戶界面、用戶視圖

 

業務模型model中的數據發生改變的時候,用戶視圖view也隨之變化。用戶視圖view改變的時候,業務模型model中的數據也可以發生改變。

  1. 組件化
  2. 指令系統
  3. Vue.js 2.0開始支持虛擬DOM(Vue.js 1.0 是操作的真是DOM,而不是虛擬DOM)

虛擬DOM可以提升頁面的刷新速度。

二、Vue.js起步

每個 Vue 應用都需要通過實例化 Vue 來實現。

語法格式如下:

var vm = new Vue({
  // 選項
})
第一個Vue實例
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 測試實例 </title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
</head>
<body>
    <div id="vue_det">
        <h1>uname: {{uname}}</h1>
        <h1>url : {{url}}</h1>
        <h1>{{details()}}</h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#vue_det',
            data: {
                uname: "老李頭",
                url: "www.baidu.com",
                alexa: "10000"
            },
            methods: {
                details: function() {
                    return  this.uname+ " - 掉坑里了!";
                }
            }
        })
    </script>
</body>
</html>

可以看到在 Vue 構造器中有一個el 參數,它是 DOM 元素中的 id。在上面實例中 id 為 vue_det,在 div 元素中:

<div id = "vue_det"></div>

 

這意味着我們接下來的改動全部在以上指定的 div 內,div 外部不受影響。

接下來我們看看如何定義數據對象。

data 用於定義屬性,實例中有三個屬性分別為:site、url、alexa。

methods 用於定義的函數,可以通過 return 來返回函數值。

{{ }} 用於輸出對象屬性和函數返回值。

<div id="vue_det">
    <h1>uname: {{uname}}</h1>
    <h1>url : {{url}}</h1>
    <h1>{{details()}}</h1>
</div>

 

當一個 Vue 實例被創建時,它向 Vue 的響應式系統中加入了其 data 對象中能找到的所有的屬性。當這些屬性的值發生改變時,html 視圖將也會產生相應的變化。

// 我們的數據對象 
var data = { 
  uname: "老李頭", 
  url: "www.baidu.com", 
  alexa: 10000
} 
var vm = new Vue({ 
  el: '#vue_det', 
  data: data 
}) 
// 它們引用相同的對象! 
document.write(vm.uname === data.uname) // true 
document.write("<br>")

// 設置屬性也會影響到原始數據 
vm.uname = "老鄧頭" 
document.write(data.uname + "<br>") // Runoob // ……反之亦然 data.alexa = 1234 document.write(vm.alexa) // 1234

 三、Vue.js指令

指令,其實指的就是vue的v-開頭的自定義屬性。每個不同的屬性都有各自不同的意義和功能。

指令的語法:

v-指令名稱=”表達式判斷或者是業務模型中屬性名或者是事件名”

3.1 v-text

作用:操作元素中的純文本

快捷方式:{{}}

 

 

3.2 v-html

作用:操作元素中的html

 

 

3.3 v-bind

作用:v-bind綁定頁面中的元素屬性。例如:a的href屬性,img的src、alt和title屬性。

語法:v-bind:元素的屬性名 = “data中鍵名”

 

  

 

 

在view模板中,可以使用簡單的JS表單式,例如:

 

 

 

3.4 v-show

作用:通過判斷,是否顯示該內容。如果值為true,則顯示。否則就隱藏。

語法:v-show=”判斷表達式”

特點:元素會始終渲染在DOM中,只是被設置了display:none

 

3.5 v-if 

作用:判斷是否加載固定的內容。如果為真,則加載;為假時,則不加載。

用處:用在權限管理,頁面條件加載

語法:v-if=”判斷表達式”

特點:控制元素插進來或者刪除,而不是隱藏。

 

v-if與v-show的區別:

一般來說,v-if有更高的切換消耗,安全性更高,而v-show有更多的初始化渲染消耗。因此,如果需要頻繁切換而對安全性無要求,使用v-show。如果在運行時,條件不可能改變,則使用v-if較好。

 

3.6 v-else

v-else必須緊跟在v-if后面,否則他不能被識別。表示:當v-if的條件不成立的時候執行。

 

3.7 v-for

作用:控制html元素中的循環,實現詩句列表的生成。

用法:

view:

v-for=”item in 集合”

 

item: 集合的子項

集合:被遍歷的集合,通常為數組。

用處:寫在誰上,誰循環。

 

 

數據:

 

 

3.8 v-on

作用:對頁面中的事件進行綁定

語法: v-on:事件類型=“事件處理函數名”

縮寫: @事件類型=“事件處理函數名”

 

 

用法:

在view中,用v-on:事件類型=”methods中的方法名字”

在vue實例中,在methods中去監聽:也就書寫methods的該方法。

 

  

3.9 v-model

作用:接受用戶輸入的一些數據,直接就可以將這些數據掛在到data屬性上。這樣就產生了雙向的數據綁定(當業務模型中的數據發生變化時,用戶界面中的數據會發生變化;當用戶界面中的數據變化時,業務模型中的數據也會發生變化)。

語法:v-model = “data中的鍵名”

在data中,最好也要定義這個屬性,不然會報錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM