码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Vue中自定义事件


    事件我们并不陌生,以前我们都是用的框架帮我们配置好的事件,我们称为原生事件。通过v-on:或者@绑定事件,事件触发时执行对应的程序。

    今天我们自己来创建一个事件,我们要先知道事件的三要素:事件源 target 、事件类型type 、监听器handler

    在自定义事件中,事件源就是我们设置的组件,事件类型我们自己命名,监听器就是事件绑定的那个函数,我们想要完成一个组件的完成,我们需要在组件中用到vm对象原型上的一个方法:this.$emit("事件类型名","要给触发的事件的函数handler传入值(可省)")

    我们来试一下:

    创建box1.vue组件并设置一个事件:事件名为myevent,事件触发条件为msg=5时才触发。

    1. <script>
    2. export default{
    3. data() {
    4. return {
    5. msg:1
    6. }
    7. },
    8. methods: {
    9. add(){
    10. this.msg++
    11. if (this.msg==5) {
    12. this.$emit("myevent",1,"参数2")
    13. }
    14. }
    15. },
    16. }
    17. script>
    18. <style>
    19. .box1{
    20. width: 100px;
    21. height: 100px;
    22. background-color: aqua;
    23. }
    24. style>

    在app.vue组件中,导入注册box1组件,并使用其myevent事件:绑定的监听器为fn函数,事件触发时控制台打印信息和我们用arguments接收传入的参数。

    1. <script>
    2. import Box1 from "@/components/box1.vue"
    3. export default {
    4. methods: {
    5. fn(){
    6. console.log("事件触发了",arguments);
    7. }
    8. },
    9. components:{
    10. Box1,
    11. }
    12. }
    13. script>
    14. <style>
    15. .app{
    16. width: 400px;
    17. height: 400px;
    18. background-color: burlywood;
    19. }
    20. style>

    效果:

    二、也可以通过this.$emit()这个方法来实现给组件标签间接绑定原生事件,让子组件的原生事件触发时调用父组件的函数。

    代码展示:创建box2.vue组件并当组件内事件触发时创建事件。

    1. <script>
    2. export default{
    3. methods: {
    4. fn(){
    5. this.$emit("click1")
    6. }
    7. },
    8. }
    9. script>
    10. <style>
    11. .box2{
    12. width: 200px;
    13. height: 200px;
    14. background-color: yellow;
    15. }
    16. style>

    在app.vue组件中,导入注册box2组件,并为创建的对象提供函数。

    1. <script>
    2. import Box2 from "@/components/box2.vue"
    3. export default {
    4. methods: {
    5. fn1(){
    6. console.log("原生");
    7. }
    8. },
    9. components:{
    10. Box2
    11. }
    12. }
    13. script>
    14. <style>
    15. .app{
    16. width: 400px;
    17. height: 400px;
    18. background-color: burlywood;
    19. }
    20. style>

     三、事件修饰符.native,通过这个可以直接在组件上绑定原生属性。

    如:给上面的Box2绑定点击事件

  • 相关阅读:
    基于微信在线教育视频学习点播小程序系统设计与实现开题答辩PPT
    新库上线 | 中国记者信息数据
    OpenGL超级宝典(第五版)疑难点汇总解析
    js 死循环代码debug
    2023年【天津市安全员C证】模拟考试及天津市安全员C证实操考试视频
    BP神经网络算法基本原理,bp神经网络算法的原理
    Pytorch Bert 中文分类 运行代码时候遇到的问题
    C#学习系列相关之多线程(一)----常用多线程方法总结
    [附源码]java毕业设计大学生心理咨询网站
    微信小程序 --- 简易双向绑定
  • 原文地址:https://blog.csdn.net/m0_59345890/article/details/126730572
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号