成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

小程序頁(yè)面之間的通訊利器 - nsevent

Eric / 2543人閱讀

摘要:這個(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)交互

比如 pageApageB 兩個(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);      // nothing
emit(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 ns2
off(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

相關(guān)文章

  • 自制微信程序通訊JS

    摘要:自制微信小程序通訊起因現(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ò)父子...

    keke 評(píng)論0 收藏0
  • 程序不同頁(yè)面之間通訊解決方案

    摘要:小程序做開(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...

    Kerr1Gan 評(píng)論0 收藏0
  • ????入行軟件測(cè)試坑?。?!軟件測(cè)試人常用軟件測(cè)試工具軟件推薦????

    軟件測(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)在我把我工...

    frank_fun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<