随笔 - 326,  文章 - 0,  评论 - 0,  阅读 - 16万

一.DOM事件分析

- 原生DOM事件
  - 1.绑定事件监听
     如: div.onclick = () = > {}
    - 目标元素  div
    - 事件名称  click
    - 回调函数  ()=>{}
  - 2.调用事件(也称分发事件)
    - 当我们对目标元素进行相应的操作的时候,浏览器会自动的调用对应的事件
- vue自定义中的事件
  - 1.绑定事件监听
    - 用法: 比如:
      vm.$on("xxx",callback)
      解释:在Child标签当中绑定一个事件对象 fn , 事件名 xxx
  - 2.调用事件(分发事件)
    - 用法: 比如:
      vm.$emit("xxx",data)
      解释: 在当前组件中,调用(分发) xxx 事件,传入数据为data(data一般指event)
  - 3.解除事件
    - 用法:比如:
      vm.$off("xxx",callback)
- vue中自定义事件:
   - 一般用户子向父通讯 ==> 用来替代函数props来传递参数
   - 子向父传递数据

二.案例分析

  • App组件(功能为father组件)
<template>
  <div>
    <!-- <Child @father="father"/> --> <!-- 2A. 方式一:给子组件添加绑定事件 -->
    <Child ref="fa"/><!-- 2B.给组件设置一个属性 -->
    <div>{{message}}</div>
  </div>
</template>

<script>
import Child from './components/Child.vue'
export default {
  name: 'App',
  components:{
    Child
  },
  mounted() {
    // 2B.方式二.通过给子组件设置的属性找到该组件,然后再绑定事件
    this.$refs.fa.$on("father",this.father)
  },
  data(){
    return{
      message:"父组件中的数据"
    }
  },
  methods: {
    //1.定义一个事件
    father(value){
      this.message = this.message + value;
    }
  },
}
</script>
<style>
</style>
  • 子组件
<template>
    <div>
        <button @click="sonAdd">子组件</button>
    </div>
</template>
<script>
export default {
  name: 'Child',
  methods: {
      sonAdd(){
          //3.调用自定义事件,并传递参数
          this.$emit("father","我是子组件中的数据")
      }
  },
}
</script>
<style>
</style>
  • 案例效果图展示
posted on   文种玉  阅读(278)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2020-07-13 访问tomcat服务器的时候常见的错误
2020-07-13 addresss already in use,JVM_BIND:8080
2020-07-13 JSP的九大内置对象
2020-07-13 jsp中的java脚本
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示