首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 7 章 处理用户交互
7.1 事件的监听与处理
7.1.1 事件监听示例
7.1.2 多事件处理
7.1.3 事件修饰符
7.2 Vue中的事件类型
7.2.1 常用的事件类型
7.2.2 按键修饰符
7.3 实战一:随鼠标移动的小球
7.4 实战二:弹球游戏
第 8 章 组件基础
8.1 关于Vue应用与组件
8.1.1 Vue应用的数据配置选项
8.1.2 定义组件
8.2 组件中数据与事件的传递
8.2.1 为组件添加外部属性
8.2.2 处理组件事件
8.2.3 在组件上使用v-model指令
8.3 自定义组件的插槽
8.3.1 组件插槽的基本用法
8.3.2 多具名插槽的用法
8.4 动态组件的简单应用
8.5 实战:开发一款小巧的开关按钮组件
第 9 章 组件进阶
9.1 组件的生命周期与高级配置
9.1.1 生命周期方法
9.1.2 应用的全局配置选项
9.1.3 组件的注册方式
9.2 组件props属性的高级用法
9.2.1 对props属性进行验证
9.2.2 props的只读性质
9.2.3 组件数据注入
9.3 组件Mixin技术
9.3.1 使用Mixin来定义组件
9.3.2 Mixin选项的合并
9.3.3 进行全局Mixin
9.4 使用自定义指令
9.4.1 认识自定义指令
9.4.2 自定义指令的参数
9.5 组件的Teleport功能
第 10 章 Vue响应性编程
10.1 响应性编程原理与在Vue中的应用
10.1.1 手动追踪变量的变化
10.1.2 Vue中的响应性对象
10.1.3 独立的响应性值Ref的应用
10.2 响应式的计算与监听
10.2.1 关于计算变量
10.2.2 监听响应式变量
10.3 组合式API的应用
10.3.1 关于setup方法
10.3.2 在setup方法中定义生命周期行为
10.4 实战:支持搜索和筛选的用户列表示例
10.4.1 常规风格的示例工程开发
10.4.2 使用组合式API重构用户列表页面
当前位置:
首页>>
技术小册>>
TypeScript和Vue从入门到精通(三)
小册名称:TypeScript和Vue从入门到精通(三)
### 7.1.1 事件监听示例 在Vue.js框架中结合TypeScript使用,事件监听是一个核心且强大的功能,它允许开发者响应组件内或组件间的用户交互,如点击、输入、键盘事件等。通过合理使用事件监听,可以极大地增强应用的交互性和用户体验。本章节将详细探讨在TypeScript环境下,如何在Vue项目中设置和管理事件监听,并通过一系列示例来加深理解。 #### 7.1.1.1 理解事件监听基础 在Vue中,事件监听通常与模板中的DOM元素绑定,通过`v-on`指令(或其简写`@`)来实现。当指定的事件发生时,Vue会调用一个名为方法(method)的JavaScript函数。在TypeScript环境中,这些方法需要在Vue组件的`<script lang="ts">`部分中被明确定义,并遵循TypeScript的类型检查规则。 #### 7.1.1.2 示例一:基础点击事件 首先,我们从一个简单的点击事件监听开始。假设我们有一个按钮,当用户点击它时,我们想要显示一个消息。 **Template 部分** ```html <template> <div> <button @click="handleClick">点击我</button> <p v-if="messageVisible">你点击了按钮!</p> </div> </template> ``` **Script 部分** ```typescript <script lang="ts"> import { Vue, Component } from 'vue-property-decorator'; @Component export default class HelloWorld extends Vue { messageVisible = false; handleClick() { this.messageVisible = true; console.log('按钮被点击了'); } } </script> ``` 在这个例子中,我们使用了`@click`来监听按钮的点击事件,并调用`handleClick`方法。当方法被调用时,我们改变了`messageVisible`的状态,从而控制消息是否显示。注意,这里我们使用了`vue-property-decorator`库来简化Vue组件的声明,但你也可以使用传统的`options` API。 #### 7.1.1.3 示例二:键盘事件监听 接下来,我们看一个键盘事件的监听示例。假设我们想要在用户按下Enter键时执行某个操作。 **Template 部分** ```html <template> <div> <input type="text" placeholder="输入文字,按Enter提交" @keyup.enter="handleEnter" /> </div> </template> ``` **Script 部分** ```typescript <script lang="ts"> import { Vue, Component } from 'vue-property-decorator'; @Component export default class KeyboardEvents extends Vue { handleEnter(event: KeyboardEvent) { console.log('Enter键被按下', event.target.value); // 这里可以添加更多逻辑,如发送数据到服务器 } } </script> ``` 在这个例子中,我们使用了`@keyup.enter`来监听键盘上的Enter键。当用户在输入框中按下Enter键时,`handleEnter`方法会被调用,并接收到一个`KeyboardEvent`对象作为参数,允许我们访问事件的详细信息,如按下的键或输入框的值。 #### 7.1.1.4 示例三:自定义事件监听 Vue也支持组件间的自定义事件通信。子组件可以触发事件,而父组件可以监听这些事件来执行相应的逻辑。 **子组件(ChildComponent.vue)** ```html <!-- ChildComponent.vue --> <template> <button @click="notifyParent">通知父组件</button> </template> <script lang="ts"> import { Vue, Component, Emit } from 'vue-property-decorator'; @Component export default class ChildComponent extends Vue { @Emit() notifyParent() { return '来自子组件的消息'; } } </script> ``` **父组件** ```html <template> <div> <ChildComponent @notify-parent="handleChildMessage" /> </div> </template> <script lang="ts"> import { Vue, Component } from 'vue-property-decorator'; import ChildComponent from './ChildComponent.vue'; @Component({ components: { ChildComponent } }) export default class ParentComponent extends Vue { handleChildMessage(message: string) { console.log('接收到子组件的消息:', message); } } </script> ``` 在这个例子中,子组件`ChildComponent`有一个按钮,当点击时,会触发一个名为`notifyParent`的自定义事件,并附带一条消息。父组件通过`@notify-parent`监听这个事件,并定义了一个`handleChildMessage`方法来处理接收到的消息。 #### 7.1.1.5 事件监听的高级话题 - **事件修饰符**:Vue提供了许多事件修饰符(如`.stop`、`.prevent`、`.capture`等)来修改事件的默认行为或触发方式。 - **事件对象**:在监听函数内部,你可以访问事件对象(如`$event`),它包含了事件的详细信息。 - **移除事件监听**:虽然Vue.js内部自动管理了大多数事件监听器的生命周期,但在某些情况下(如使用原生JS添加监听器时),你可能需要手动移除它们以避免内存泄漏。 - **性能优化**:大量的事件监听器可能会影响应用的性能。考虑使用防抖(debounce)和节流(throttle)技术来优化高频事件的处理。 #### 结论 通过本章的学习,我们深入了解了在TypeScript环境下,如何在Vue项目中设置和管理事件监听。从基础的点击和键盘事件到组件间的自定义事件通信,每个示例都详细展示了如何在Vue组件中定义和使用事件监听。同时,我们也探讨了事件监听的一些高级话题,如事件修饰符、事件对象、事件监听的移除以及性能优化等。掌握这些技能将帮助你构建更加交互丰富和响应迅速的Vue应用。
上一篇:
7.1 事件的监听与处理
下一篇:
7.1.2 多事件处理
该分类下的相关小册推荐:
vuejs组件实例与底层原理精讲
vue项目构建基础入门与实战
Vue3技术解密
TypeScript和Vue从入门到精通(二)
Vue.js从入门到精通(一)
Vue.js从入门到精通(二)
Vue.js从入门到精通(四)
Vue源码完全解析
Vue原理与源码解析
Vue面试指南
TypeScript和Vue从入门到精通(四)
VUE组件基础与实战