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

台州外贸网站小程序主题wordpress

台州外贸网站,小程序主题wordpress,做直播券的网站有多少钱,网站怎么开通微信支付一、使用react-router库#xff08;以react-router-dom为例#xff09; 1. 历史#xff08;history#xff09;对象监听 1.1 原理 react-router内部使用history对象来管理路由历史记录。可以通过访问history对象来监听路由变化。在基于类的组件中#xff0c;可以通过组…一、使用react-router库以react-router-dom为例 1. 历史history对象监听 1.1 原理 react-router内部使用history对象来管理路由历史记录。可以通过访问history对象来监听路由变化。在基于类的组件中可以通过组件的props获取history对象在函数式组件中可以使用useHistory钩子函数获取。 1.2 示例基于类的组件 import React from react;import { withRouter } from react-router-dom;class MyComponent extends React.Component {componentDidMount() {this.props.history.listen((location, action) {console.log(路由发生变化新位置:, location);console.log(路由变化的动作:, action);});}render() {return div这是一个组件/div;}}export default withRouter(MyComponent); 在这里componentDidMount生命周期方法中通过this.props.history.listen来添加一个路由变化的监听器。每当路由发生变化时就会打印出新的位置location和路由变化的动作action如PUSH、REPLACE等。 1.3 示例函数式组件 import React from react;import { useHistory } from react-router-dom;function MyComponent() {const history useHistory();React.useEffect(() {const unlisten history.listen((location, action) {console.log(路由发生变化新位置:, location);console.log(路由变化的动作:, action);});return () {unlisten();};}, [history]);return div这是一个函数式组件/div;}export default MyComponent; 在函数式组件中使用useHistory钩子获取history对象然后在useEffect钩子中添加监听器。同时返回一个清理函数用于在组件卸载时移除监听器。 2. useLocation钩子监听推荐用于函数式组件 2.1 原理 useLocation是react-router-dom提供的一个钩子函数它返回当前的location对象。通过比较前后location对象的变化可以检测到路由是否发生了变化。 2.2 示例 import React from react;import { useLocation } from react-router-dom;function MyComponent() {const location useLocation();React.useEffect(() {console.log(当前路由位置:, location);}, [location]);return div这是一个函数式组件/div;}export default MyComponent; 在这里useEffect钩子依赖location对象。每当location发生变化即路由变化时useEffect中的回调函数就会被执行打印出当前的路由位置。 3. 自定义事件监听不依赖react-router内部机制 3.1 原理 在顶层组件如App组件中通过window对象的addEventListener方法监听hashchange对于哈希路由或popstate对于 HTML5 历史记录路由事件来检测路由变化。这种方法比较底层需要自己处理更多的细节比如区分不同类型的路由和处理事件冒泡等问题。 3.2 示例以哈希路由为例 import React from react;function App() {React.useEffect(() {const handleHashChange () {console.log(哈希路由发生变化当前哈希:, window.location.hash);};window.addEventListener(hashchange, handleHashChange);return () {window.removeEventListener(hashchange, handleHashChange);};}, []);return div{/* 路由相关组件和内容 */}/div;}export default App; 在App组件的useEffect钩子中添加了一个hashchange事件监听器。当哈希路由发生变化时就会打印出当前的哈希值。注意在返回的清理函数中要移除添加的监听器以避免内存泄漏。
http://www.hkea.cn/news/14399406/

相关文章:

  • 南通专业网站建设舆情信息报告范文
  • 有关大数据的网站及网址开发网站找什么公司吗
  • 中国互联网网站性能贵阳网站建设王道下拉惠
  • 如何用微信小程序做网站门户网站广告的特点有
  • 做网站江西如何上传安装wordpress
  • 网站设计公司排名前十wordpress 获取评论
  • 做品牌网站找谁平台网站开发风险
  • 计算机基础网站建设和网络安全Python做网站 性能
  • 站长工具pr值查询有没有做微场景的网站
  • wordpress学做网站微信公众号h5网站开发
  • 网站建设后台程序用什么语言网站设计开发网站
  • 中国城乡住房建设厅网站首页柴油网站怎么做
  • 个人如何开网站新闻最新北京消息今天
  • 曹县住房和城乡建设局网站wordpress图片展示主题yousucai
  • 北京网站改版价格怎么查一个公司是否正规
  • 品牌网站建站网站设计 站
  • 阿里指数网站西安大型网站开发
  • 网站建设 蜂图网络做彩票网站违法吗
  • 网站开发结束语深圳住房建设局网站申报
  • 我有一个网站怎么做外贸厦门小程序开发的公司
  • 我做的网站关键词到首页了没单子vps可以多少wordpress
  • 新网 网站建立广州市网站建设分站价格
  • 湖北 个人网站备案时间南京网站设计机构
  • 成都专业网站建设优化团队昆明官网seo诊断
  • 企业网站服务器多少钱wordpress版权插件
  • 网站的优化从几个方面做网站需要绑定电脑ip吗
  • 网站建设中怎么解决网页上做ppt的网站
  • 网站开发 架构自己做qq头像静态的网站
  • 微网站免费创建平台江西建设厅培训网站
  • 郑州做网站找哪家做二手货的网站有哪些