如何详细编写基于Vue的on、emit、off封装方法?

更新于
2026-10-02 17:27:57
0阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计921个文字,预计阅读时间需要4分钟。

一、概念

1.`$on(事件名称, 回调函数)`:事件绑定,将一个事件名称与一个回调函数关联起来,当事件发生时,回调函数将被执行。

2.`$emit(事件名称, 需要传递的值)`:事件触发,当调用此方法时,会触发指定名称的事件,并可以传递值给事件监听器。

3.`$off(事件名称)`:事件解绑,移除之前绑定的事件监听器。

一、概念

1. $on("事件名称",回调函数)

事件绑定,一个事件名称上面可能绑定多个函数

2. $emit("事件名称",需要传递的值)

事件触发时,会触发当前事件身上所有的函数

3. $off("事件名称",[需要解绑的函数])

事件解绑时,若指定解绑函数则只解绑相应函数,否则解绑全部

二、手动封装on,emit,off事件在vue中的作用

| 在vue中进行非父子组件传值时,我们可以通过在vue的原型上添加一个公共的vue实例,组件之间调用这个公共实例的$on/$emit来传递数据,传递的一方调用$emit,接收的一方调用$on。

Vue.prototype.Observer = new Vue(); //实例化对象

| 这种方式能使所有对象拥有共同的on和emit,但是增加的属性所挂载的实例对象太大,就相当于你的一台法拉利的轮子坏了,你又买了一台新的法拉利并卸掉它的轮子,放到了原来的法拉利上,这十分耗费性能。因此,我们可以手动封装事件,来实现非父子传值。

import Observer from "./Observer"; //引入封装好的文件 Vue.prototype.Observer = Observer; //将其添加到vue的原型上

三、封装on,emit,off事件

1. $on:创建一个事件仓库存放事件,判断事件名称是否存在。若不存在,初始化创建一个数组;若存在,将当前函数push到数组中。

阅读全文
标签:代码详

本文共计921个文字,预计阅读时间需要4分钟。

一、概念

1.`$on(事件名称, 回调函数)`:事件绑定,将一个事件名称与一个回调函数关联起来,当事件发生时,回调函数将被执行。

2.`$emit(事件名称, 需要传递的值)`:事件触发,当调用此方法时,会触发指定名称的事件,并可以传递值给事件监听器。

3.`$off(事件名称)`:事件解绑,移除之前绑定的事件监听器。

一、概念

1. $on("事件名称",回调函数)

事件绑定,一个事件名称上面可能绑定多个函数

2. $emit("事件名称",需要传递的值)

事件触发时,会触发当前事件身上所有的函数

3. $off("事件名称",[需要解绑的函数])

事件解绑时,若指定解绑函数则只解绑相应函数,否则解绑全部

二、手动封装on,emit,off事件在vue中的作用

| 在vue中进行非父子组件传值时,我们可以通过在vue的原型上添加一个公共的vue实例,组件之间调用这个公共实例的$on/$emit来传递数据,传递的一方调用$emit,接收的一方调用$on。

Vue.prototype.Observer = new Vue(); //实例化对象

| 这种方式能使所有对象拥有共同的on和emit,但是增加的属性所挂载的实例对象太大,就相当于你的一台法拉利的轮子坏了,你又买了一台新的法拉利并卸掉它的轮子,放到了原来的法拉利上,这十分耗费性能。因此,我们可以手动封装事件,来实现非父子传值。

import Observer from "./Observer"; //引入封装好的文件 Vue.prototype.Observer = Observer; //将其添加到vue的原型上

三、封装on,emit,off事件

1. $on:创建一个事件仓库存放事件,判断事件名称是否存在。若不存在,初始化创建一个数组;若存在,将当前函数push到数组中。

阅读全文
标签:代码详