国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

小程序頁面之間的通訊利器 - nsevent

Eric / 2513人閱讀

摘要:這個模塊主要的原因是用在微信開發時候監聽兩個頁面之間的狀態交互比如和兩個頁面頁面有收藏項也有同樣的收藏項,監聽同一個事件收藏事件改變刷新列表數據那么在頁面操作收藏事件會觸發自身頁面回調,這時候就派上用場,在這樣聲明收藏事件改變刷新列表數據在

這個模塊主要的原因是用在微信開發時候監聽兩個頁面之間的狀態交互

比如 pageApageB 兩個頁面, 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");
// 瀏覽器
on(eventName, fn, namespace)
參數 必選 說明
eventName 監聽事件名
fn 回調函數
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)
參數 必選 說明
eventName 監聽事件名
fn 回調函數
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)
參數 必選 說明
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])
參數 必選 說明
eventName 監聽事件名
string function array 解綁回調函數
string 指定命名空間解綁
function 指定函數解綁
array 通過數組指定命名空間或者函數解綁
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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100862.html

相關文章

  • 自制微信程序通訊JS

    摘要:自制微信小程序通訊起因現在微信小程序開發基本會使用到組件的開發。隨著組件的不斷增加,使得組件之間的通訊越發頻繁。這個能使得我們在組件和頁面之間隨意通訊,您只需要按照規范注冊,使用即可,可以幫你建立任意兩個組件之間的通信通道。 自制微信小程序通訊JS 起因 現在微信小程序開發基本會使用到組件的開發。隨著組件的不斷增加,使得組件之間的通訊越發頻繁。然后,微信小程序中組件之前通訊必須通過父子...

    keke 評論0 收藏0
  • 程序不同頁面之間通訊解決方案

    摘要:小程序做開發的時候難免需要不同頁面之間的通訊,比如首頁打開新的頁面搜索獲取結果返回到首頁,不同頁面之間的數據交互等等。 小程序做開發的時候難免需要不同頁面之間的通訊,比如首頁打開新的頁面搜索獲取結果返回到首頁,不同tab頁面之間的數據交互等等。于是做了以下總結 當前頁面打開新的頁面 打開新的頁面可以通過 navigator 組件來實現,通過url傳參來實現,例如 搜索 在新的頁面 on...

    Kerr1Gan 評論0 收藏0
  • ????入行軟件測試坑!!!軟件測試人常用軟件測試工具軟件推薦????

    軟件測試工具大揭秘 前言軟件測試常用軟件GitPycharmBCompareTyporaXMindNavicatSublime TextPostmanFiddlerCharlesXshellXftpJmeter 前言 ??現如今,技術發展十分迅猛,開發者只有通過不斷的學習才能跟得上時代的步伐。而為了便于學習和工作(減少996),涌現了很多優秀的開發工具用以幫助開發者提高工作效率。現在我把我工...

    frank_fun 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<