不要在新页面加载或刷新时渲染React组件
Do not render React Component on fresh page load or refresh
我正在寻找一种方法,让React在页面刚加载或刷新时不渲染组件。只有当用户在单页应用程序中从一页浏览到另一页时,该组件才应该呈现。
我试过使用window.document.readyState
来检测这个,但它被击中或错过了。
您可以在浏览器中使用会话存储,如
if(!sessionStorage.active || sessionStorage.active == window.location.href) {
// First visit or refresh
} else {
// Render component
}
sessionStorage.active = window.location.href;
当用户第一次访问该页面时,不会设置sessionStorage.active
,而是转到// First visit or refresh
。
如果用户刷新页面,将设置sessionStorage.active
,但它也将等于当前url并转到// First visit or refresh
。
如果用户从网站内的另一个页面访问该页面,则会设置sessionStorage.active
,并且它与window.location.href
不匹配,因为它当前设置为以前访问过的页面url。因此,它将转到// Render component
。
这个解决方案可能有一些怪癖,必须在特殊的用例中解决,但希望你有一个好的起点。
相关文章:
- React组件等待所需道具进行渲染
- React组件-设置页面标题
- 为react组件传递道具的最佳方式
- react组件中的绑定方法
- 加载服务器端渲染的React组件后执行脚本
- 如何基于依赖性导入React组件
- 可以't在我的React组件中加载图像
- jsx-React组件中的格式化编号
- 在进行服务器端渲染时,我可以向客户端发送React组件吗
- 使用jquery在react组件内部设置样式可以吗
- 为什么我不能将键映射到 React 组件上
- webpack样式加载器-在react组件上导入不同的样式,而无需重写
- 无法将react组件作为属性传递给另一个组件
- 继承React组件的正确方式
- 在JSX中围绕React组件封装高阶组件(HOC)
- 根据React组件的名称渲染该组件
- react组件的正确命名规范
- 在另一个文件夹中显示React组件
- AJAX 请求没有在我的 React 组件中设置 this.state.data
- 有没有一条清晰的路径,我可以实现一个在 ScalaJS + React 中广泛使用上下文的 React 组件