增城哪家网站建设好,如何做网站实名认证,wordpress活动报名功能,背景图片在有些场景下#xff0c;使用组件间通信或者组件和页面间通信并不可行。比如我需要只有一个websocket实例#xff0c;并且需要向多个页面传递我接收到的消息。
下面的方法是一个页面向其它页面#xff08;触发事件#xff09;传递数据#xff0c;其它页面也可以向这个页面…在有些场景下使用组件间通信或者组件和页面间通信并不可行。比如我需要只有一个websocket实例并且需要向多个页面传递我接收到的消息。
下面的方法是一个页面向其它页面触发事件传递数据其它页面也可以向这个页面传递数据。也就是可以互相传递。缺点是这个页面必须曾经打开过。
首先在app.js中的onLaunch里这样定义
this.pages {};
假设有2个页面
a.js
b.js 分别在这2个js文件中onLoad事件中写如下代码
app.pages[this.__route__] this;
分别在这2个js文件中定义一个方法用于接收收到的消息。比如我们可以这样写(communication 随便命名即可)
communication(res){console.log(res)
}
如果你想从a.js里往b.js发数据触发事件communication那么在a.js里这样写
try{app.pages[pages/b/b].communication(I am from a.js);
}catch{console.log(b页面未打开过)
}
前面说过了分别写接收消息的方法communication那么
在b.js里需要这样写
//在b.js里接收消息
communication(content){console.log(in b.js, content)
//再给a.js发一条消息try{app.pages[pages/a/a].communication(I am from b.js);}catch(e){console.error(error in b.js e.message)}}
上面的代码因为在b.js里又给a.js发了一个消息那么你要在a.js里也写一个communication方法前面已经说过要在需要接收消息的js中分别写communication
在a.js里加几行代码用于接收b.js发来的消息
communication(content){console.log(in a.js, content)
},
多个页面同理。