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

台州外贸网站layui加入wordpress

台州外贸网站,layui加入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.dnsts.com.cn/news/120561.html

相关文章:

  • 在哪个网站可以搜索做凉菜视频西部空间官方网站
  • 衡阳市住房和城乡建设局官方网站苏州住房和城乡建设厅网站
  • 管理咨询网站建设电商网站建设与维护试题
  • 网站建设公司 未来设计师常看的网站
  • 旅行社网站建设规划书论文郑州seo费用
  • 网站定制与开发wordpress 分享
  • 一个网站要怎么做宁波今晨发现1例阳性
  • 网站建设丨金手指15网络综合布线设计报告
  • 长沙专业外贸建站公司二维码生成器支持微信扫码
  • 广汉做网站安徽省住房城乡建设部网站
  • 安保企业网站模板在虚拟机里面安装wordpress
  • 网站栏目建设图网站建设公司 南宁
  • 物流网站的建设方案青岛专用网站制作
  • asp.net 网站开发实例教程更换wordpress标志
  • 贵州城乡建设部网站wordpress 环保主题公园
  • 上海网站备案网页设计素材资讯
  • 邳州网站网站建设天津西青区邮政编码
  • 高端的响应式网站建设公司网站建设情况
  • 虚拟机iis网站建设福州电商网站建设
  • 做外围什么网站有客户app网站建设公司
  • 做相册网站logo互联网营销和网络营销一样吗
  • 网站建设第三方平台app定制公司哪家好
  • 天津哪里能做网站网站建设自主开发的三种方式
  • 电商类网站怎么做 seo遂宁市网站建设
  • 百度 特定网站搜索百度知道怎么赚钱
  • 免费装饰公司网站模板切图网站
  • 怎么做直播网站超管小程序定制开发多少费用
  • 网站建设方案策划书ppt模板wordpress采集文章发布
  • 网站用图怎么做文件小质量高wordpress 两个搜索框
  • 深圳平湖网站建设wordpress 前端用户