有命名空間的事件監聽器nsevent的詳細介紹(程式碼範例)
html5
javascript
小程式
本篇文章帶給大家的內容是關於有命名空間的事件監聽器nsevent的詳細介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
這個模組主要的原因是用在微信開發時候監聽兩個頁面之間的狀態交互
比如pageA 和pageB 兩個頁面, pageA 頁面有收藏項pageB 也有同樣的收藏項,監聽同一個事件
// 收藏事件改变 nsevent.on('collectChange', () => { // 刷新列表数据 })
登入後複製
那麼在pageA 頁面操作collect(收藏) 事件會觸發自身頁面collectChange 回調,這時候nsevent就派上用場,
在pageA 這樣宣告
// 收藏事件改变 nsevent.on('collectChange', () => { // 刷新列表数据 }, 'pageA')
登入後複製
在pageB 觸發pageA 的事件,就不會觸發自身頁面的回呼了
// 触发collectChange事件 NSEvent.emit('collectChange', params, { ns: ['pageA'] });
登入後複製
還可以在pageC 觸發pageA, pageB頁面的collectChange 事件
// 触发collectChange事件 NSEvent.emit('collectChange', params, { ns: ['pageA', 'pageB'] });
登入後複製
nsevent document
有命名空間的事件監聽器- event emitter with namespace安裝和使用
npm i nsevent --save
登入後複製
const nsevent = require('nsevent');
登入後複製
// 浏览器 <script src="dist/nsevent.umd.js"></script>
登入後複製
#on(eventName, fn, namespace)
參數 | #必須 | #說明 |
---|---|---|
是 | 監聽事件名稱 | |
是 | 回呼函數 |
#命名空間
once(eventName, fn) | ||
---|---|---|
#說明 | ||
eventName |
#fn
回呼函數 | NSEvent.once('add', (a, b) => { console.log(a, b); }); NSEvent.emit('add', 1, 2); // 1, 2 NSEvent.emit('add', 1, 2); // nothing 登入後複製 |
|
---|---|---|
參數 | 必選 | |
eventName | ||
監聽事件名稱 | arg[1,2,3...] |
#object
{ 最後一個傳遞對象,ns: ['ns'] } 可以指定命名空間觸發事件 |
NSEvent.on('fire', () => { console.log('fire ns'); }, 'ns'); NSEvent.on('fire', () => { console.log('fire ns2'); }, 'ns'); NSEvent.on('fire', () => { console.log('fire'); }); NSEvent.emit('fire'); // fire ns, fire ns2, fire console.log("======"); NSEvent.emit('fire', 1, 2, { ns: [] }); // nothing NSEvent.emit('fire', 1, 2, { ns: ['ns'] }); // fire ns, fire ns2 登入後複製 |
off(eventName, [string|function|array]) |
||
---|---|---|---|---|
說明 | ||||
#監聽事件名稱 | ||||
#string | functionarray | 否 |
解綁回呼函數 |
|
#string | 指定命名空間解綁||||
#function | 指定函數解綁
const NSEvent = require('../dist/nsevent.cjs'); NSEvent.on('fire', () => { console.log('fire ns'); }, 'ns'); NSEvent.on('fire', () => { console.log('fire ns'); }, 'ns'); NSEvent.on('fire', () => { console.log('fire1'); }, 'ns1'); NSEvent.emit('fire'); // fire ns, fire ns, fire1 console.log('=========='); NSEvent.off('fire', ['ns']); NSEvent.emit('fire'); // fire1 console.log('=========='); NSEvent.off('fire', 'ns1'); NSEvent.emit('fire'); // none
登入後複製
以上是有命名空間的事件監聽器nsevent的詳細介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
<🎜>:種植花園 - 完整的突變指南
3 週前
By DDD
<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
如何修復KB5055612無法在Windows 10中安裝?
3 週前
By DDD
北端:融合系統,解釋
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)