1.vue鼠标事件
v-on:click=@click
<!-- 单击事件将停止传递 -->
<a @click.stop="doThis"></a>
<!-- 提交事件将不再重新加载页面 -->
<form @submit.prevent="onSubmit"></form>
<!-- 修饰语可以使用链式书写 -->
<a @click.stop.prevent="doThat"></a>
<!-- 也可以只有修饰符 -->
<form @submit.prevent></form>
<!-- 仅当 event.target 是元素本身时才会触发事件处理器 -->
<!-- 例如:事件处理器不来自子元素 -->
<div @click.self="doThat">...</div>
<!-- 添加事件监听器时,使用 `capture` 捕获模式 -->
<!-- 例如:指向内部元素的事件,在被内部元素处理前,先被外部处理 -->
<div @click.capture="doThis">...</div>
<!-- 点击事件最多被触发一次 -->
<a @click.once="doThis"></a>
<!-- 滚动事件的默认行为 (scrolling) 将立即发生而非等待 `onScroll` 完成 -->
<!-- 以防其中包含 `event.preventDefault()` -->
<div @scroll.passive="onScroll">...</div>
2.vue键盘事件
v-on:keyup=@keyup
<!-- 仅在 `key` 为 `Enter` 时调用 `submit` -->
<input @keyup.enter="submit" />
<input @keyup.page-down="onPageDown" />
.enter
.tab
.delete (捕获“Delete”和“Backspace”两个按键)
.esc
.space
.up
.down
.left
.right
.ctrl
.alt
.shift
.meta
3.动态组件
有些场景会需要在两个组件间来回切换,比如 Tab 界面,Menu界面:
例子是通过 Vue 的 <component>
元素和特殊的 is
attribute 实现的:
<script>
//引入三个组件,Tab或Menu
import Home from './Home.vue'
import Posts from './Posts.vue'
import Archive from './Archive.vue'
export default {
//注册组件
components: {
Home,
Posts,
Archive
},
data() {
return {
currentTab: 'Home', //初始化currentTab
tabs: ['Home', 'Posts', 'Archive']。//三个组件分类
}
}
}
</script>
<template>
<!-- 根据三个按钮动态切换 -->
<button @click="currentTab = Home">home组件</button>
<button @click="currentTab = Posts">posts组件</button>
<button @click="currentTab = Archive">archive组件</button>
<!-- 子组件位置 -->
<component :is="currentTab" class="tab"></component>
</template>