本文為轉(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ù)表達式的真假來刪除和插入元素牌里,它的基本語法如下:
v-if="expression"
expression是一個返回bool值的表達式,表達式可以是一個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+) 語法糖,會擴展成一個更新父組件綁定值的 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ù)指定。表達式可以是一個方法的名字或一個內(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