当前位置: 首页 > news >正文

肃州区建设局网站网络安全培训最强的机构

肃州区建设局网站,网络安全培训最强的机构,企业网站的布局,WordPress Demo演示在有些场景下,使用组件间通信或者组件和页面间通信并不可行。比如我需要只有一个websocket实例,并且需要向多个页面传递我接收到的消息。 下面的方法是一个页面向其它页面(触发事件)传递数据,其它页面也可以向这个页面…

在有些场景下,使用组件间通信或者组件和页面间通信并不可行。比如我需要只有一个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)
},

多个页面同理。

http://www.yjzp8.cn/news/325.html

相关文章: