真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

有命名空間的事件監(jiān)聽器nsevent的示例分析

這篇文章主要介紹有命名空間的事件監(jiān)聽器nsevent的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

10年積累的成都網站建設、網站設計經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有汝南免費網站建設讓你可以放心的選擇與我們合作。

這個模塊主要的原因是用在微信開發(fā)時候監(jiān)聽兩個頁面之間的狀態(tài)交互

比如 pageA 和 pageB 兩個頁面, pageA 頁面有收藏項 pageB 也有同樣的收藏項,監(jiān)聽同一個事件

// 收藏事件改變
nsevent.on('collectChange', () => {
    // 刷新列表數(shù)據(jù)
})

那么在 pageA 頁面操作 collect(收藏) 事件會觸發(fā)自身頁面 collectChange 回調,這時候nsevent就派上用場,

在 pageA 這樣聲明

// 收藏事件改變
nsevent.on('collectChange', () => {
    // 刷新列表數(shù)據(jù)
}, 'pageA')

在 pageB 觸發(fā) pageA 的事件,就不會觸發(fā)自身頁面的回調了

// 觸發(fā)collectChange事件
NSEvent.emit('collectChange', params, { ns: ['pageA'] });

還可以在 pageC 觸發(fā) pageA, pageB頁面的 collectChange 事件

// 觸發(fā)collectChange事件
NSEvent.emit('collectChange', params, { ns: ['pageA', 'pageB'] });

nsevent document

有命名空間的事件監(jiān)聽器 - event emitter with namespace

安裝和使用

npm i nsevent --save
const nsevent = require('nsevent');
// 瀏覽器

on(eventName, fn, namespace)

參數(shù)必選說明
eventName監(jiān)聽事件名
fn回調函數(shù)
namespace命名空間
NSEvent.on('add', (a, b) => {
  console.log(a, b);
});

NSEvent.on('add', (a, b) => {
  console.log(a, b, 'ns');
}, 'ns');

// 1, 2
// 1, 2, 'ns'
NSEvent.emit('add', a, b);

once(eventName, fn)

參數(shù)必選說明
eventName監(jiān)聽事件名
fn回調函數(shù)
NSEvent.once('add', (a, b) => {
  console.log(a, b);
});

NSEvent.emit('add', 1, 2);      // 1, 2
NSEvent.emit('add', 1, 2);      // nothing

emit(eventName, arg1, arg2, ..., object)

參數(shù)必選說明
eventName監(jiān)聽事件名
arg[1,2,3...]傳遞給回調函數(shù)的值
object{ 最后一個傳遞對象,ns: ['ns'] } 可以指定命名空間觸發(fā)事件
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])

參數(shù)必選說明

eventName監(jiān)聽事件名

stringfunctionarray解綁回調函數(shù)

string指定命名空間解綁


function指定函數(shù)解綁


array通過數(shù)組指定命名空間或者函數(shù)解綁

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

以上是“有命名空間的事件監(jiān)聽器nsevent的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網站名稱:有命名空間的事件監(jiān)聽器nsevent的示例分析
文章出自:http://weahome.cn/article/jdosoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部