摘要:這個(gè)模塊主要的原因是用在微信開(kāi)發(fā)時(shí)候監(jiān)聽(tīng)兩個(gè)頁(yè)面之間的狀態(tài)交互比如和兩個(gè)頁(yè)面頁(yè)面有收藏項(xiàng)也有同樣的收藏項(xiàng),監(jiān)聽(tīng)同一個(gè)事件收藏事件改變刷新列表數(shù)據(jù)那么在頁(yè)面操作收藏事件會(huì)觸發(fā)自身頁(yè)面回調(diào),這時(shí)候就派上用場(chǎng),在這樣聲明收藏事件改變刷新列表數(shù)據(jù)在
這個(gè)模塊主要的原因是用在微信開(kāi)發(fā)時(shí)候監(jiān)聽(tīng)兩個(gè)頁(yè)面之間的狀態(tài)交互
比如 pageA 和 pageB 兩個(gè)頁(yè)面, pageA 頁(yè)面有收藏項(xiàng) pageB 也有同樣的收藏項(xiàng),監(jiān)聽(tīng)同一個(gè)事件
// 收藏事件改變 nsevent.on("collectChange", () => { // 刷新列表數(shù)據(jù) })
那么在 pageA 頁(yè)面操作 collect(收藏) 事件會(huì)觸發(fā)自身頁(yè)面 collectChange 回調(diào),這時(shí)候nsevent就派上用場(chǎng),
在 pageA 這樣聲明
// 收藏事件改變 nsevent.on("collectChange", () => { // 刷新列表數(shù)據(jù) }, "pageA")
在 pageB 觸發(fā) pageA 的事件,就不會(huì)觸發(fā)自身頁(yè)面的回調(diào)了
// 觸發(fā)collectChange事件 NSEvent.emit("collectChange", params, { ns: ["pageA"] });
還可以在 pageC 觸發(fā) pageA, pageB頁(yè)面的 collectChange 事件
// 觸發(fā)collectChange事件 NSEvent.emit("collectChange", params, { ns: ["pageA", "pageB"] });nsevent document
有命名空間的事件監(jiān)聽(tīng)器 - event emitter with namespace安裝和使用
npm i nsevent --save
const nsevent = require("nsevent");
// 瀏覽器on(eventName, fn, namespace)
參數(shù) | 必選 | 說(shuō)明 |
---|---|---|
eventName | 是 | 監(jiān)聽(tīng)事件名 |
fn | 是 | 回調(diào)函數(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ù) | 必選 | 說(shuō)明 |
---|---|---|
eventName | 是 | 監(jiān)聽(tīng)事件名 |
fn | 是 | 回調(diào)函數(shù) |
NSEvent.once("add", (a, b) => { console.log(a, b); }); NSEvent.emit("add", 1, 2); // 1, 2 NSEvent.emit("add", 1, 2); // nothingemit(eventName, arg1, arg2, ..., object)
參數(shù) | 必選 | 說(shuō)明 |
---|---|---|
eventName | 是 | 監(jiān)聽(tīng)事件名 |
arg[1,2,3...] | 否 | 傳遞給回調(diào)函數(shù)的值 |
object | 否 | { 最后一個(gè)傳遞對(duì)象,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 ns2off(eventName, [string|function|array])
參數(shù) | 必選 | 說(shuō)明 | ||
---|---|---|---|---|
eventName | 是 | 監(jiān)聽(tīng)事件名 | ||
string | function | array | 否 | 解綁回調(diào)函數(shù) |
string | 指定命名空間解綁 | |||
function | 指定函數(shù)解綁 | |||
array | 通過(guò)數(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
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/100862.html
摘要:自制微信小程序通訊起因現(xiàn)在微信小程序開(kāi)發(fā)基本會(huì)使用到組件的開(kāi)發(fā)。隨著組件的不斷增加,使得組件之間的通訊越發(fā)頻繁。這個(gè)能使得我們?cè)诮M件和頁(yè)面之間隨意通訊,您只需要按照規(guī)范注冊(cè),使用即可,可以幫你建立任意兩個(gè)組件之間的通信通道。 自制微信小程序通訊JS 起因 現(xiàn)在微信小程序開(kāi)發(fā)基本會(huì)使用到組件的開(kāi)發(fā)。隨著組件的不斷增加,使得組件之間的通訊越發(fā)頻繁。然后,微信小程序中組件之前通訊必須通過(guò)父子...
摘要:小程序做開(kāi)發(fā)的時(shí)候難免需要不同頁(yè)面之間的通訊,比如首頁(yè)打開(kāi)新的頁(yè)面搜索獲取結(jié)果返回到首頁(yè),不同頁(yè)面之間的數(shù)據(jù)交互等等。 小程序做開(kāi)發(fā)的時(shí)候難免需要不同頁(yè)面之間的通訊,比如首頁(yè)打開(kāi)新的頁(yè)面搜索獲取結(jié)果返回到首頁(yè),不同tab頁(yè)面之間的數(shù)據(jù)交互等等。于是做了以下總結(jié) 當(dāng)前頁(yè)面打開(kāi)新的頁(yè)面 打開(kāi)新的頁(yè)面可以通過(guò) navigator 組件來(lái)實(shí)現(xiàn),通過(guò)url傳參來(lái)實(shí)現(xiàn),例如 搜索 在新的頁(yè)面 on...
軟件測(cè)試工具大揭秘 前言軟件測(cè)試常用軟件GitPycharmBCompareTyporaXMindNavicatSublime TextPostmanFiddlerCharlesXshellXftpJmeter 前言 ??現(xiàn)如今,技術(shù)發(fā)展十分迅猛,開(kāi)發(fā)者只有通過(guò)不斷的學(xué)習(xí)才能跟得上時(shí)代的步伐。而為了便于學(xué)習(xí)和工作(減少996),涌現(xiàn)了很多優(yōu)秀的開(kāi)發(fā)工具用以幫助開(kāi)發(fā)者提高工作效率?,F(xiàn)在我把我工...
閱讀 1877·2023-04-25 22:42
閱讀 2245·2021-09-22 15:16
閱讀 3512·2021-08-30 09:44
閱讀 511·2019-08-29 16:44
閱讀 3339·2019-08-29 16:20
閱讀 2539·2019-08-29 16:12
閱讀 3410·2019-08-29 16:07
閱讀 694·2019-08-29 15:08