内置指令
v-text 输出文本
<div id = "app">
<div v-text = "mes"></div>
</div>
new Vue({
el: '#app',
data: {
mes: 'Hannah'
}
})
v-html 输出HTML
<div id="app">
<div v-html="message"></div>
</div>
new Vue({
el: '#app',
data: {
message: '<h1>Hannah</h1>'
}
})
v-bind 标签属性
<div v-bing:id = 'main' v-bind:class = 'red'></div>
<div :id = 'main' :class = 'red'></div>
<div :class='{red:1}'></div>
<div :class='{blue:true}'></div>
v-on 事件绑定
<button v-on:click = 'show'></button>.
<button v-on:mouseover = 'hide'></button>
<button @click = 'show'></button>
<button @mouseover = 'hide'></button>
<a @click.prevent href="https://csdn.net">CSDN</a>
<a @click.prevent="onSubmit" href="https://csdn.net">CSDN</a>
v-if 显示隐藏
<p v-if=true> show </p>
<p v-if="true"> show </p>
<p v-if=false> hide </p>
v-show
和 v-hide
控制元素的 display
<p v-show=true> show </p>
<p v-hide=true> hide </p>
<p v-if="state === '0'"> A </p>
<p v-else-if="state === '1'"> B </p>
<p v-else> C </p>
v-model 双向数据绑定
<div id="app">
<input v-model="mes">
<h1>{{ mes }}</h1>
</div>
new Vue({
el: '#app',
data: {
message: 'Runoob!'
}
})
v-for 遍历
v-for = (val, key, index)
形参位置固定,分别为 值、键名、索引
<ul>
<li v-for = "val in obj"> {{ val }} </li>
<li v-for = "(val, key) in obj"> {{ key + val }} </li>
<li v-for = "(val, key, index) in obj"></li>
</ul>
v-pre 原始输出
<p v-pre>{{message}}</p>
v-cloak 闪烁
- 当DOM树构建好完成页面的渲染后才执行,且其须要与css一起使用
<p v-cloak>{{message}}</p>
v-once
- 只有当DOM树第一次渲染时起作用,只渲染元素和组件一次
- 元素/组件及其所有的子节点将被视为静态内容并跳过
<span v-once>This will never change: {{ msg }}</span>
<div v-once>
<h1>comment</h1>
<p>{{msg}}</p>
</div>
<my-component v-once :comment="msg"></my-component>
<ul>
<li v-for="i in list" v-once>{{i}}</li>
</ul>
自定义指令
全局指令定义
Vue.directive('directiveName', {
bind: function (el) {
},
inserted: function (el) {
},
update: function (el) {
},
componentUpdated: function (el) {
},
unbind: function (el) {
}
})
局部指令定义
new Vue({
el: '#main',
directives: {
// 定义指令
directiveName: {
// 钩子函数
bind: function (el) {
},
inserted: function (el) {
},
update: function (el) {
},
componentUpdated: function (el) {
},
unbind: function (el) {
}
}
}
})