发起事件

用法

  1. new CustomEvent(eventName, params);

示例

创建一个自定义事件

  1. const event=new CustomEvent('mock-event');

传递参数

这里值得注意,需要把想要传递的参数包裹在一个包含detail属性的对象,否则传递的参数不会被挂载

  1. function createEvent(params, eventName = 'mock-event') {
  2. return new CustomEvent(eventName, { detail: params });
  3. }
  4. const event = createEvent({ id: '0010' });

发起事件

调用dispatchEvent方法发起事件,传入你刚才创建的方法

  1. window.dispatchEvent(event);

监听事件

  1. window.addEventListener('mock-event', ({ detail: { id } }) => {
  2. console.log('id',id) // 会在控制台打印0010
  3. });


例:

  1. document.body.addEventListener('show', (event) => { console.log(event.detail); });
  2. // 触发
  3. let myEvent = new CustomEvent('show', {
  4. detail: {
  5. username: 'xixi',
  6. userid: '2022'
  7. }
  8. });
  9. document.body.dispatchEvent(myEvent);