js發起自定義事件CustomEvent
最近一個專案中需要模擬發起一個掃碼槍事件進行測試,之前寫react native呼叫DeviceEventEmitter
這個api就可以了,然而在web中不太常用,最終在mdn中發現了這個構造方法CustomEvent
發起事件
用法
new CustomEvent(eventName, params);
示例
建立一個自定義事件
const event=new CustomEvent('mock-event');
傳遞引數
這裡值得注意,需要把想要傳遞的引數包裹在一個包含detail
屬性的物件,否則傳遞的引數不會被掛載?(這裡不太確定,我試過傳id
和params
都不會生效)
function createEvent(params, eventName = 'mock-event') {
return new CustomEvent(eventName, { detail: params });
}
const event = createEvent({ id: '0010' });
發起事件
呼叫dispatchEvent
方法發起事件,傳入你剛才建立的方法
window.dispatchEvent(event);
監聽事件
window.addEventListener('mock-event', ({ detail: { id } }) => {
console.log('id',id) // 會在控制檯列印0010
});
在react中的應用
最好在componentDidMount
中呼叫addEventListener
監聽事件,在componentWillUnmount
中呼叫removeEventListener
移除事件監聽器。
相關文章
- js 建立和觸發事件 和 自定義事件JS事件
- JS觀察者模式-自定義事件JS模式事件
- js自定義Android端手勢事件JSAndroid事件
- JavaScript自定義事件JavaScript事件
- 自定義View以及事件分發總結View事件
- Javascript中自定義事件JavaScript事件
- WPF自定義路由事件路由事件
- 繫結自定義事件事件
- WPF 自定義附加事件事件
- javascript自定義事件原理JavaScript事件
- 自定義事件提醒程式事件
- jquery自定義事件的使用jQuery事件
- Android自定義OnTouch事件Android事件
- javascript自定義回車事件JavaScript事件
- 微信小程式自定義事件微信小程式事件
- java 自定義監聽事件Java事件
- Android 自定義View:處理事件分發(四)AndroidView事件
- 自定義view原始碼分析之事件分發01View原始碼事件
- 【PB】如何觸發帶引數的自定義事件?事件
- node.js實現的自定義事件程式碼例項Node.js事件
- 利用hutool發起自定義編碼格式的請求
- 自定義事件相容處理物件事件物件
- 自定義的事件管理器事件
- Javascript框架的自定義事件(轉)JavaScript框架事件
- 元件間通訊--自定義事件元件事件
- 自定義一個事件聚合器事件
- rxjs Observable 自定義 Operator 的開發技巧JS
- AngularJS - 自定義指令AngularJS
- 自定義JSON名JSON
- 自定義View事件之進階篇(四)-自定義Behavior實戰View事件
- Android自定義View之事件分發機制總結AndroidView事件
- 【爬坑日記】iview使用render自定義渲染觸發事件View事件
- vue router路由自定義後退事件Vue路由事件
- jQuery自定義事件簡單介紹jQuery事件
- C#:委託和自定義事件C#事件
- 使用jQuery在javascript中自定義事件jQueryJavaScript事件
- 080 元件自定義事件-繫結元件事件
- 自定義事件實現子傳父事件