首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS/React的视图--类似于JS的方法?

JS/React的视图--类似于JS的方法?
EN

Stack Overflow用户
提问于 2015-04-12 06:26:58
回答 3查看 439关注 0票数 2

比如说,有两个标签打开了相同的网页。在一个选项卡上,我在localStorage中做了一些更改,然后,当我转到另一个选项卡时,我希望看到该更改而不必重新加载页面.

我认为这样做的一种方法是使用setInterval方法,但是对于我的应用程序,我并不需要每3-5秒检查一次更新,所以我觉得这种方法并不理想。

我用的是反应。TLDR:当我打开先前加载的网页的选项卡时,是否有一种更新数据的好方法?

iOS method的附带说明:在iOS上,有一个viewDidLoad方法(据我理解它类似于componentDidMount),还有一个viewDidAppear方法(所以我基本上是在询问viewDidAppear的React/JS版本?)

关于可能重复的问题:在我看来,这似乎是相当不同的问题,而且这个问题更多地集中在React.js上。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-12 08:28:22

使用页面可见性api或仅使用窗口的焦点事件。我建议把备份计时器设为一分钟左右.这些事件可以是挑剔的。

除了绑定到全球事件之外,没有什么反应是具体的。

票数 1
EN

Stack Overflow用户

发布于 2015-04-12 06:37:07

您可以使用jQuery并收听localStorage on change事件:

代码语言:javascript
复制
 $(window).bind('storage', function (e) {
     console.log(e.originalEvent.key, e.originalEvent.newValue);
 });

这样,一旦本地存储中的一个键发生变化,您就可以在第二个选项卡中反映它。

如果使用react,那么请确保在主组件的render()函数中呈现一个组件,该函数利用主组件的state对象。一旦本地存储发生变化,相应地更新state并作出反应将负责其余的事务。

票数 1
EN

Stack Overflow用户

发布于 2015-04-12 20:10:27

我将以下代码行添加到我的主组件中。

在componentDidMount中:

代码语言:javascript
复制
document.addEventListener("visibilitychange", this._callbackFunc, false);

在componentWillUnmount中:

代码语言:javascript
复制
document.removeEventListener("visibilitychange", this._callbackFunc, false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29586662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档