冇事来学系--Vue2.0中自定义事件

简介: 定义一种组件之间通信的方式,适用于子传父

自定义事件的声明


$emit('事件名称', 需要传递的参数 )

// click点击事件的本质(vue是怎么操作的)
$emit('click', {
  clientX: '',
  clientY: '',
  target: dom元素
})
------------------------------------------------------------
// eg:
// 子组件通过定义事件child-msg的方式将msg传给父组件
// 子组件中有个button按钮,并为其添加click事件
<template>
  <button @click="deliver"></button>
</template>
<script>
  export default {
    data(){
      return {
        msg: '我是子组件的数据'
      }
    },
    methods: {
      // 按钮点击事件的处理函数
      // 当点击的时候使用$emit()触发事件,把message传给父组件
      deliver(){
        this.$emit('child-msg', this.msg)
      }
    }
  }
</script>
---------------------------------------------------------------
// 父组件在使用子组件的时候,绑定子组件自定义的child-msg事件
<template>
  <Son @child-msg="getChildMsg"></Son>
</template>
<script>
export default {
  data(){
    return {
      message: ''   // 设置message来接收子组件的数据 (这里的值类型得根据需要传递的类型写)
    }
  },
  methods: {                // 通过回调函数来接收数据
    getChildMsg(val){       // 定义形参val接收数据
      this.message = val    // 将子组件传过来的数据转存到父组件
    }
  }
}
</script>



事件的绑定除了可以在标签中通过v-on绑定之外,还可以通过ref属性获取到相应的元素,然后在生命周期钩子mounted( )中通过this.refs.xxx.refs.xxx.refs.xxx.on('事件名称', 回调函数) 进行绑定 。

注意此时的回调函数必须写在当前组件的methods节点中,或者使用箭头函数这样回调函数的this才会指向当前组件的实例对象,才能操作到当前组件里面的data

直接在$on( )方法中声明回调函数,则里面的this指向的是事件的触发者,即绑定事件的那个组件实例对象或者DOM元素


事件的解绑


this.$off('事件名')解绑一个自定义事件

this.$off(['事件1', '事件2']) 解绑多个自定义事件

this.$off( )解绑所有的自定义事件(不传递参数)


注意

  1. 在生命周期钩子中的销毁阶段,使用$destroy( )销毁组件实例,则它身上所有的自定义事件都会失效,但是原生的DOM事件仍然有效
  2. 在组件上也可以绑定原生DOM事件,但是需要在绑定的时候加上native修饰符
<Children @click.native="show"></Children>


目录
相关文章
|
3月前
|
人工智能 边缘计算 自然语言处理
魔珐星云:免费体验企业级3D AI数字人智能客服!告别枯燥对话框!
魔珐科技携手魔搭社区上线「魔珐星云智能客服Demo」,基于超写实3D数字人技术,打造具身智能交互新体验。通过文生多模态3D大模型,实现语音、表情、动作实时生成,支持Web端低延时互动,百元级芯片即可运行,助力企业构建自然高效的人机对话系统。
349 4
魔珐星云:免费体验企业级3D AI数字人智能客服!告别枯燥对话框!
|
4月前
|
机器学习/深度学习 人工智能 编解码
阿里云GPU服务器全解析:实例选型、收费标准与活动价格,超强算力与灵活购买
随着人工智能、大数据、AI和深度学习等领域的快速发展,GPU服务器的需求日益增长。阿里云的GPU服务器凭借强大的计算能力和灵活的资源配置,成为众多用户的首选。很多用户比较关心gpu云服务器的收费标准与活动价格情况。本文为大家整理汇总了gpu云服务器的最新收费标准与活动价格情况,热门gpu实例性能性能特点及适用场景,以供参考。
阿里云GPU服务器全解析:实例选型、收费标准与活动价格,超强算力与灵活购买
|
C语言
strlen函数【详解+模拟实现】
strlen函数【详解+模拟实现】
|
人工智能 弹性计算 搜索推荐
打造个性化的微信公众号AI小助手:从人设到工作流程
在数字化时代,一个有个性且功能强大的AI小助手能显著提升用户体验。本文档指导如何在微信公众号上设置AI小助手“小智”,涵盖其人设、功能规划及工作流程设计,旨在打造一个既智能又具吸引力的AI伙伴。
1296 0
|
Swift iOS开发
iOS开发-属性的内存管理
【8月更文挑战第12天】在iOS开发中,属性的内存管理至关重要,直接影响应用性能与稳定性。主要策略包括:`strong`(强引用),不维持对象生命期,可用于解除循环引用;`assign`(赋值),适用于基本数据类型及非指针对象属性;`copy`,复制对象而非引用,确保对象不变性。iOS采用引用计数管理内存,ARC(自动引用计数)自动处理引用增减,简化开发。为避免循环引用,可利用弱引用或Swift中的`[weak self]`。最佳实践包括:选择恰当的内存管理策略、减少不必要的强引用、及时释放不再使用的对象、注意block内存管理,并使用Xcode工具进行内存分析。
194 1
|
存储 Linux 应用服务中间件
非985、211,C/C++校招学到啥程度才能进鹅厂、阿里、百度等大厂
非985、211,C/C++校招学到啥程度才能进鹅厂、阿里、百度等大厂
|
Shell C++
Window10 文件夹增加VSCode右键打开
Window10 文件夹增加VSCode右键打开
366 1
|
Go
golang力扣leetcode 433. 最小基因变化
golang力扣leetcode 433. 最小基因变化
148 0
|
存储 算法
操作系统:虚拟存储管理技术
操作系统:虚拟存储管理技术
351 0
MS大模型测评报告
从写作创作相关、知识常识、中文游戏三个方向对大语言模型进行评测
160 1

热门文章

最新文章