ホームページ  >  記事  >  ウェブフロントエンド  >  名前空間イベント リスナー nsevent の詳細な紹介 (コード例)

名前空間イベント リスナー nsevent の詳細な紹介 (コード例)

不言
不言転載
2019-01-10 10:04:272706ブラウズ

この記事では、名前空間イベント リスナー nsevent について詳しく説明します (コード例)。必要な方は参考にしていただければ幸いです。

このモジュールの主な理由は、WeChat 開発中の 2 つのページ間のステータスのやり取りを監視することです。

たとえば、ページ A とページ B には 2 つのお気に入りがあり、ページ B には同じお気に入りがあります。 . item、同じイベントをリッスンします

// 收藏事件改变
nsevent.on('collectChange', () => {
    // 刷新列表数据
})

次に、pageA ページでcollect(collection)イベントを操作すると、独自のページのcollectChangeコールバックがトリガーされます。このとき、nseventが役に立ちます。 pageA で次のように記述します

// 收藏事件改变
nsevent.on('collectChange', () => {
    // 刷新列表数据
}, 'pageA')

pageA のイベントが pageB でトリガーされた場合、自身のページのコールバックはトリガーされません。pageA のcollectChange イベントをトリガーすることもできます。

// 触发collectChange事件
NSEvent.emit('collectChange', params, { ns: ['pageA'] });

nsevent document

名前空間を持つイベント エミッター - 名前空間を持つイベント エミッター

インストールと使用

// 触发collectChange事件
NSEvent.emit('collectChange', params, { ns: ['pageA', 'pageB'] });
npm i nsevent --save
const nsevent = require('nsevent');

on(eventName, fn, namespace)

パラメータ必須eventName は Noonce(eventName, fn)
説明
リスニング イベント名 #fn
コールバック関数 namespace
Namespace
// 浏览器
<script src="dist/nsevent.umd.js"></script>

パラメータ必須eventName は emit(eventName, arg1, arg2, ..., object)
説明
リスニング イベント名 #fn
コールバック関数
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);

#パラメータ

##必須説明##イベント名listening イベント名##arg[1,2,3...]No渡される値コールバック関数へ
#object No {最後に渡されたオブジェクト、ns: ['ns'] } 名前空間を指定できます。イベントをトリガーします
NSEvent.once('add', (a, b) => {
  console.log(a, b);
});

NSEvent.emit('add', 1, 2);      // 1, 2
NSEvent.emit('add', 1, 2);      // nothing
off(eventName, [string|function|array])
#パラメータ

必須

説明リスニング イベント名配列 アンバインド コールバック関数#関数##array 配列を通じて名前を指定します スペースまたは関数のバインド解除

eventName
# は
##string function

No
##文字列 バインドを解除する名前空間を指定します


バインドを解除する関数を指定してください




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

以上が名前空間イベント リスナー nsevent の詳細な紹介 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。