Vue學(xué)習(xí)筆記入門篇——安裝及常用指令介紹

本文為轉(zhuǎn)載,原文:Vue學(xué)習(xí)筆記入門篇——安裝及常用指令介紹

介紹

Vue.js是當(dāng)下很火的一個JavaScript MVVM庫,它是以數(shù)據(jù)驅(qū)動和組件化的思想構(gòu)建的。相比于Angular.js,Vue.js提供了更加簡潔、更易于理解的API,使得我們能夠快速地上手并使用Vue.js。

安裝

CDN

https://unpkg.com/vue, 會保持和 npm 發(fā)布的最新的版本一致。可以在 https://unpkg.com/vue/ 瀏覽 npm 包資源。代碼中直接引用以下代碼:

<script src="https://unpkg.com/vue/dist/vue.js"></script>

NPM

在用 Vue.js 構(gòu)建大型應(yīng)用時推薦使用 NPM 安裝, NPM 能很好地和諸如 Webpack 或 Browserify 模塊打包器配合使用。 Vue.js 也提供配套工具來開發(fā)單文件組件。

npm install vue

Hellow World示例

<div id="app">
    <p>{{message}}</p>
</div>

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script>
var app = new Vue({
    el:'#app',
    data:{
        message:'Hello word'
    }
})

運行結(jié)果:



其中app為Vue對象,el指定作用在html的元素,即例子中<div id='app'></div>,data是數(shù)據(jù)對象,數(shù)據(jù)綁定最常見的形式就是使用 “Mustache” 語法(雙大括號)的文本插值。

常用指令

Vue.js的指令是以v-開頭的,它們作用于HTML元素,指令提供了一些特殊的特性,將指令綁定在元素上時,指令會為綁定的目標(biāo)元素添加一些特殊的行為,我們可以將指令看作特殊的HTML特性(attribute)。
Vue.js提供了一些常用的內(nèi)置指令,接下來我們將介紹以下幾個內(nèi)置指令:

v-model

在表單控件或者組件上創(chuàng)建雙向綁定
修飾符:

.lazy - 取代 input 監(jiān)聽 change 事件
.number - 輸入字符串轉(zhuǎn)為數(shù)字
.trim - 輸入首尾空格過濾

示例代碼:

<div id="app-model">
    <p>{{message}}</p>
    <input type="text" v-model="message">
</div>
var app_model = new Vue({
    el:'#app-model',
    data:{
        message:''
    }
})

在輸入框輸入內(nèi)容時,其上方同步顯示輸入內(nèi)容:


v-if

v-if是條件渲染指令,它根據(jù)表達(dá)式的真假來刪除和插入元素,它的基本語法如下:

v-if="expression"

expression是一個返回bool值的表達(dá)式,表達(dá)式可以是一個bool屬性,也可以是一個返回bool的運算式,如以下代碼:

<div id="app-if">
    <p v-if="seen">你可以看見我</p>
</div>

    var app_if = new Vue({
        el:'#app-if',
        data:{
            seen:true
        }
    })

運行結(jié)果如下:


如果你在控制臺設(shè)置 app_if.seen=false 則"你可以看見我"字樣就會消失不見

v-show

v-show也是條件渲染指令,和v-if指令不同的是,使用v-show指令的元素始終會被渲染到HTML,它只是簡單地為元素設(shè)置CSS的style屬性。例如:

<div id="app-show">
    <p v-show="age > 25">Age:{{age}}</p>
</div>

    var app_show = new Vue({
        el:'#app-show',
        data:{
            age:28
        }
    })

運行結(jié)果如下:



同樣,如果在控制臺修改app_show.age的值,若是age>25的結(jié)果為false的話,界面中的文本也會消失不見。

v-else

可以用v-else指令為v-if或v-show添加一個“else塊”。v-else元素必須立即跟在v-if或v-show元素的后面——否則它不能被識別。
示例代碼:

<div id="app-else">
    <p v-if="age > 18">{{name}}的年齡是{{age}}歲,已成年</p>
    <p v-else>{{name}}的年齡是{{age}}歲,未成年</p>
</div>

    var app_else = new Vue({
        el:'#app-else',
        data:{
            name:'chain',
            age:17
        }
    })

運行結(jié)果如下:


v-for

v-for指令基于一個數(shù)組渲染一個列表,它和JavaScript的遍歷語法相似:

v-for="item in items"

items是一個數(shù)組,item是當(dāng)前被遍歷的數(shù)組元素。例如:

<div id="app-for">
    <ul v-for="item in items">
        <li>{{item}}</li>
    </ul>
</div>
var app_for = new Vue({
    el:'#app-for',
    data:{
        items:[
            'Vue',
            'Angular',
            'React'
        ]
    }
})

運行結(jié)果:


v-bind

v-bind指令可以在其名稱后面帶一個參數(shù),中間放一個冒號隔開,這個參數(shù)通常是HTML元素的特性(attribute),例如:v-bind:class

v-bind:argument="expression"

修飾符:

.prop - 被用于綁定 DOM 屬性。(what’s the difference?)
.camel - (2.1.0+) 將 kebab-case 特性名轉(zhuǎn)換為 camelCase. (從 2.1.0 開始支持)
.sync (2.3.0+) 語法糖,會擴(kuò)展成一個更新父組件綁定值的 v-on 偵聽器。
示例代碼:

<div id="app-bind">
    ![](img_url)
</div>
var app_bind = new Vue({
    el:'#app-bind',
    data:{
        img_url:'https://cn.vuejs.org/images/logo.png'
    }
})

運行結(jié)果:


v-on

綁定事件監(jiān)聽器。事件類型由參數(shù)指定。表達(dá)式可以是一個方法的名字或一個內(nèi)聯(lián)語句,如果沒有修飾符也可以省略。可縮寫為@

用在普通元素上時,只能監(jiān)聽 原生 DOM 事件。用在自定義元素組件上時,也可以監(jiān)聽子組件觸發(fā)的自定義事件。

在監(jiān)聽原生 DOM 事件時,方法以事件為唯一的參數(shù)。如果使用內(nèi)聯(lián)語句,語句可以訪問一個 $event 屬性: v-on:click="handle('ok', $event)"
修飾符:

.stop - 調(diào)用 event.stopPropagation()。
.prevent - 調(diào)用 event.preventDefault()。
.capture - 添加事件偵聽器時使用 capture 模式。
.self - 只當(dāng)事件是從偵聽器綁定的元素本身觸發(fā)時才觸發(fā)回調(diào)。
.{keyCode | keyAlias} - 只當(dāng)事件是從特定鍵觸發(fā)時才觸發(fā)回調(diào)。
.native - 監(jiān)聽組件根元素的原生事件。
.once - 只觸發(fā)一次回調(diào)。
.left - (2.2.0) 只當(dāng)點擊鼠標(biāo)左鍵時觸發(fā)。
.right - (2.2.0) 只當(dāng)點擊鼠標(biāo)右鍵時觸發(fā)。
.middle - (2.2.0) 只當(dāng)點擊鼠標(biāo)中鍵時觸發(fā)。
.passive - (2.3.0) 以 { passive: true } 模式添加偵聽器

示例代碼:

<div id="app-on">
    <p>{{message}}</p>
    <button @click="setMessage">Set Message</button>
</div>
var app_on = new Vue({
    el:'#app-on',
    data:{
        message:''
    },
    methods:{
        setMessage:function () {
            this.message='hello world';
        }
    }
})

點擊按鈕后,結(jié)果如下:


原創(chuàng)博文,轉(zhuǎn)載請注明出處
返回目錄
下一節(jié):Vue學(xué)習(xí)筆記入門篇——數(shù)據(jù)及DOM

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容