事件修饰符
当一个点击事件嵌套在多个标签中时,它会以冒泡方式出发各标签的点击函数。
.stop用来阻止冒泡的发生
1.HTML结构1
2
3
4
5
6
7
8<div @click='method1' id='app'>
<input value='test' type='button' @click='method2'>
</div>
(以上代码,若点击button会出发两个点击函数)
(以下代码,则不会)
<div @click='method1' id='app'>
<input value='test' type='button' @click.stop='method2'>
</div>
2.Vue实例1
2
3
4
5
6
7
8
9
10
11
12
13
14var vm = new Vue({
el: "app",
data: {},
methods: {
method1()
{
alert('点击了div');
}
method2()
{
alert('点击了button');
}
}
})
.prevent用来阻止默认发生事件,如地址跳转
1.HTML结构1
2
3<div id='app'>
<a href="http://desperadoccy.club:521/" @click.prevent='test'>秘密网址</a>
</div>
2.Vue实例1
2
3
4
5
6
7
8
9
10var vm = new Vue({
el: "app",
data: {},
methods: {
test
{
alert('点击了链接,却没有跳转');
}
}
})
余下的几个事件修饰符就不一一举例了
- .stop 阻止冒泡
- .prevent 阻止默认事件
- .capture 添加事件侦听器时使用事件捕获模式
- .self 只当事件在该元素本身(比如不是子元素)触发时触发回调
- .once 事件只触发一次
v-model
v-model用来实现双向绑定,即model和view的绑定
1.HTML结构1
2
3<div id='app'>
<input type="text" v-bind:value="msg">
</div>
2.Vue实例1
2
3
4
5
6var vm = new Vue({
el: "app",
data: {
msg: 'v-bind可以实现v和m的数据同步'
}
})
在Vue中使用样式
使用class样式
数组
1
<h1 :class="['red', 'thin']">这是一个邪恶的H1</h1>
数组中使用三元表达式
1
<h1 :class="['red', 'thin', isactive?'active':'']">这是一个邪恶的H1</h1>
数组中嵌套对象
1
<h1 :class="['red', 'thin', {'active': isactive}]">这是一个邪恶的H1</h1>
直接使用对象
1
<h1 :class="{red:true, italic:true, active:true, thin:true}">这是一个邪恶的H1</h1>
使用内联样式
直接在元素上通过
:style
的形式,书写样式对象1
<h1 :style="{color: 'red', 'font-size': '40px'}">这是一个善良的H1</h1>
将样式对象,定义到
data
中,并直接引用到:style
中在data上定义样式:
1
2
3data: {
h1StyleObj: { color: 'red', 'font-size': '40px', 'font-weight': '200' }
}在元素中,通过属性绑定的形式,将样式对象应用到元素中:
1
<h1 :style="h1StyleObj">这是一个善良的H1</h1>
在
:style
中通过数组,引用多个data
上的样式对象在data上定义样式:
1
2
3
4data: {
h1StyleObj: { color: 'red', 'font-size': '40px', 'font-weight': '200' },
h1StyleObj2: { fontStyle: 'italic' }
}在元素中,通过属性绑定的形式,将样式对象应用到元素中:
1
<h1 :style="[h1StyleObj, h1StyleObj2]">这是一个善良的H1</h1>
Vue指令之v-for
和key
属性
- 迭代数组
1 | <ul> |
- 迭代对象中的属性
1 |
|
- 迭代数字
1 |
|
2.2.0+ 的版本里,当在组件中使用 v-for 时,key 现在是必须的。
当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。
为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。
关于鸽子
由于科创相关前端已经完成了,暂时用不到vue了,所以就咕咕咕了!我还会回来的!