原生自定义事件

464 阅读1分钟

通过Event 新建事件,通过dispatchEvent发送事件,通过addEventListener监听事件。

window.addEventListener('toggleStartBtn', () => {
  console.log(’toggleStartBtn 事件触发‘)
})

const event = new Event('toggleStartBtn');
setTimeout(() => {
  window.dispatchEvent(event);
}, 1000)

如果想带参数的话,可以用CustomEvent,在新建的时候传入对象,改对象将合并到事件本身下。

window.addEventListener('toggleStartBtn', (e) => {
  console.log(e)
  console.log(e.detail.startEnable)
})

const event = new CustomEvent('toggleStartBtn', {
  detail: {
      startEnable: true
  },
});
setTimeout(() => {
  window.dispatchEvent(event);
}, 1000)

效果:

image.png