reactjs - 我的组件在什么情况下会在 React-router 下重新加载,什么时候会触发这些 useEffect 函数?
问题描述
我正在尝试解决网站的一些问题,并意识到我并不真正了解一些 React 和 React-router 基础知识。我正在使用带有一些可选参数的 HashRouter 来服务我的页面:
<HashRouter>
<Route path="/page/:param1?/:param2?/:param3?" component={props => <Component {...props} />} />
...
</HashRouter>
我尝试使用 BrowserRouter,但如果包含参数,它将不允许我直接导航到页面。HashRouter 可以,虽然我不知道为什么。
当我从https://www.mywebsite.com/#/page
to时https://www.mywebsite.com/#/page/1/2/3
,组件是否完全重新加载?反转的时候是不是一样的情况?在组件内部,什么时候useEffect(() => {}, [])
被调用?我一直在用它来代替 componentDidMount 但它似乎触发了多次,我不知道为什么。什么时候useEffect(() => {}, [window.location.href])
被调用,它是检查我的参数变化的合适方法吗?会useEffect(() => {}, [JSON.stringify(props.match.params)])
更好吗?
解决方案
推荐阅读
- c++ - 如何使用 mfc 将 curl 请求转换为 webrequests
- ruby - 如何获得每一年的周数
- android - Chromebook 上的 Android Studio,无法将自己识别为设备
- operating-system - 无法理解页面地址扩展的过程
- python - 如何使用 python pandas 根据条件创建“计数”列?
- twilio - Twilio 自动驾驶语音识别语言
- mql4 - 为什么从 MQL4 转换到 MQL5 后 MT4 和 MT5 的结果不同?
- apache-spark - Spark结构化流式查询中处理的总行数?
- instagram-api - GRAPH API INSTAGRAM - 获取范围日期中的指标值
- opengl - 如何使用鼠标拖动事件 OpenGL(带透视投影)添加场景平移?