当前位置: 首页 > article >正文

vue中events选项与$on监听自定义事件他们的区别与不同,以及$emit与$on之间通信和mounted生命周期钩子函数有哪些作用和属性

events 选项确实曾经被用于监听事件,但它主要用于早期版本的 Vue.js(1.x)中,用于组件之间的通信。在 Vue 2.x 中,events 选项已经被废弃,取而代之的是更强大的 $emit 和 $on 方法。

使用$emit来监听自定义事件
$emit主要用于组件中监听 DOM 事件。

<div id="app">//组件绑定自定义的事件add<my-fade @add="handleAdd"></my-fade><ul><li v-for="item in items" :key="item.id">{{ item}}</li></ul>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js"></script>
<script>let vm=new Vue({el:"#app",data:{items:[]  },//注册局部组件components:{'my-fade':{//组件的模板,绑定一个点击事件并绑定一个函数template:'<button @click="sendMessage">发送消息</button>',methods:{//绑定的事件函数sendMessage(){//$emit即是用来触发自定义事件的,这里即是组件上自定义的add事件this.$emit('add','Hello from child component!');}}}},methods:{handleAdd(msg){this.items.push(msg);}}})
</script>
  • 使用 $on 方法监听事件

$on 方法用于在 Vue 实例或组件上监听自定义事件

<div id="app"><button @click="triggerEvent">触发事件</button>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js"></script>
<script>let vm=new Vue({el:"#app",methods:{triggerEvent(){//触发自定义事件custom-event,并发送一个信息this.$emit('custom-event','Hello from custom event!');}},//mounted是vue的生命周期钩子函数mounted(){//监听custom-event事件,并接受收到一个信息this.$on('custom-event',(message)=>{alert(`接收到信息:${message}`);});}})
</script>
  • mounted 的作用与 DOM 交互:

在 mounted 钩子中,可以访问到挂载后的 DOM 元素,因为此时 Vue 实例已经与 DOM 完全绑定。

可以通过 this.$el 获取到挂载的根 DOM 元素。

  • 初始化数据:

可以在这个阶段初始化一些数据,尤其是那些需要从后端获取的数据。
例如,发送 HTTP 请求获取初始数据并更新组件的状态。

  • 绑定事件监听器:

可以绑定一些 DOM 事件监听器,例如 addEventListener,用于处理用户的交互操作。

  • 执行动画或过渡效果:

可以在这个阶段触发一些动画或过渡效果,因为此时 DOM 已经渲染完成。

  • mounted 的方法和属性

在 mounted 钩子中,可以使用 Vue 实例的所有方法和属性,例如:

this. e l :获取挂载的根 D O M 元素。 t h i s . el:获取挂载的根 DOM 元素。 this. el:获取挂载的根DOM元素。this.data:访问组件的 data 数据。
this. m e t h o d s :访问组件的 m e t h o d s 方法。 t h i s . methods:访问组件的 methods 方法。 this. methods:访问组件的methods方法。this.emit:触发自定义事件。
this. o n :监听自定义事件。 t h i s . on:监听自定义事件。 this. on:监听自定义事件。this.set:用于设置响应式数据。
this.$nextTick:在 DOM 更新完成后执行回调。

<div id="app"><h4>{{message}}</h4><button @click="changeMessage">改变信息</button>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js"></script>
<script>let vm=new Vue({el:"#app",data:{message:"hello xiaomin"},mounted(){console.log('Mounted hook called.');console.log(this.$el);this.fetchData();window.addEventListener('resize',this.handleResize);this.$nextTick(()=>{console.log('Dom updated.');});},methods:{fetchData(){setTimeout(()=>{this.message='Data loaded from server';},10000);},handleResize(){console.log('window resized');},changeMessage(){this.message='Message changed';},beforeDestroy(){window.removeEventListener('resize',this.handleResize);}}})
</script>

总结:
mounted 是 Vue 生命周期中的一个重要钩子,通常用于:
访问和操作 DOM 元素。
初始化数据,尤其是从后端获取数据。
绑定事件监听器。
触发动画或过渡效果。
在使用 mounted 时,需要注意清理绑定的资源(如事件监听器),以避免内存泄漏。

http://www.lryc.cn/news/2394730.html

相关文章:

  • 【C++ 】智能指针:内存管理的 “自动导航仪”
  • 设备制造行业项目管理难点解析,如何有效解决?
  • 浅谈 PAM-2 到 PAM-4 的信令技术演变
  • Protos-SIP:经典 SIP 协议模糊测试工具!全参数详细教程!Kali Linux教程!
  • 复数三角不等式简介及 MATLAB 演示
  • 【Doris基础】Apache Doris 基本架构深度解析:从存储到查询的完整技术演进
  • 程序人生-hellohelloo
  • ASP.NET Core SignalR的基本使用
  • 【C语言】讲解 程序分配的区域(新手)
  • 【脚本 完全参数化的通用 APT 源配置方案-Debian/Ubuntu】
  • 数据集笔记:SeekWorld
  • LeetCode 算 法 实 战 - - - 移 除 链 表 元 素、反 转 链 表
  • Jenkins实践(10):pipeline构建历史展示包名和各阶段间传递参数
  • 从头认识AI-----循环神经网络(RNN)
  • 配置远程无密登陆ubuntu服务器时无法连接问题排查
  • 5.31 数学复习笔记 22
  • kafka学习笔记(三、消费者Consumer使用教程——使用实例及及核心流程源码讲解)
  • 鸿蒙 Form Kit(卡片开发服务)
  • 算力卡上部署OCR文本识别服务与测试
  • KWIC—Implicit Invocation
  • Visual Studio 2022 发布独立的 exe 文件
  • 11.4java语言执行浅析4
  • Excel 操作 转图片,转pdf等
  • 说说 Kotlin 中的 Any 与 Java 中的 Object 有何异同?
  • python分配方案数 2023年信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析
  • 《信号与系统》第 5 章 离散时间傅里叶变换
  • 动态IP与区块链:重构网络信任的底层革命
  • 目前主流图像分类模型的详细对比分析
  • uniapp使用Canvas生成电子名片
  • 世冠科技亮相中汽中心科技周MBDE会议,共探汽车研发数字化转型新路径