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

昆明网站推广优化公司jquery 选择 网站

昆明网站推广优化公司,jquery 选择 网站,广州番禺发布网,新手如何学代码一、什么是高阶组件 高阶组件#xff08; Higher-Order Component#xff0c;HOC #xff09;是一个以组件作为参数#xff0c;返回一个新组件的函数。 高阶组件最大的特点就是复用组件逻辑高阶组件本身并不是 React 的 API#xff0c;而是React组件的一种设计模式…一、什么是高阶组件 高阶组件 Higher-Order ComponentHOC 是一个以组件作为参数返回一个新组件的函数。 高阶组件最大的特点就是复用组件逻辑高阶组件本身并不是 React 的 API而是React组件的一种设计模式一种组件重用的高级技巧高阶组件是一个函数接收要包装的组件返回增强后的组件 二、如何实现一个高阶组件 高阶组件内部创建一个组件在这个组件中提供复用的状态逻辑代码通过props将复用状态传递给被包装组件 WrappedComponent 创建一个函数命名以 with 开头指定函数参数参数为组件所以参数应该以大写字母开头在函数内部创建一个组件提供复用的状态逻辑代码并返回在该组件中渲染参数组件同时将状态通过props传递给参数组件调用该高阶组件传入要增强的组件通过返回值拿到增强后的组件并将其渲染到页面中 function withMouse(WrappedComponent) {class Mouse extends React.Component {state {x: 0,y: 0,}render() {return (WrappedComponent {...this.state}/WrappedComponent)}}return Mouse }const Position props (div鼠标位置 {props.x}, {props.y}/div )const MousePosition withMouse(Position)MousePosition /三、高阶组件demo 代码 import React from react/*** 高阶组件*/// 获取组件名 // function getDisplayName(WrappedComponent) { // return WrappedComponent.displayName || WrappedComponent.name || Component // }// 创建高阶组件 function withMouse(WrappedComponent) {// 该组件提供复用的状态逻辑class Mouse extends React.Component {// 初始化statestate {x: 0,y: 0,}// 渲染UI可以将state和props 一起传递给组件render() {return (WrappedComponent {...this.state} {...this.props}/WrappedComponent)}// 组件挂载监听鼠标移动componentDidMount() {window.addEventListener(mousemove, this.handleMouseMove)}// 组件卸载移除监听componentWillUnmount() {window.removeEventListener(mousemove, this.handleMouseMove)}// 鼠标移动事件处理程序handleMouseMove e {this.setState({x: e.clientX,y: e.clientY,})}}// 设置displayName 这个为了调试区分用可以不设置// Mouse.displayName WithMouse${getDisplayName(WrappedComponent)}// 返回增强后的组件return Mouse }// 位置组件用来测试高阶组件 const Position props (divh2鼠标位置: {props.x}, {props.y}/h2MousePosition组件: 接收的参数 a {props.a}/div )// 猫抓老鼠组件用来测试高阶组件 const Cat props (divimgsrc{require(../../assets/images/cat.png)}alt猫height22pxstyle{{position: absolute,top: props.y - 10,left: props.x - 10,}}/MouseCat组件: 接收的参数 a {props.a}/div )// 获取增强后的组件 const MousePosition withMouse(Position) const MouseCat withMouse(Cat)// 使用 class MouseHigher extends React.Component {// 渲染增强后的组件render() {return (divMousePosition a111/MousePositionMouseCat a222/MouseCat/div)} }export default MouseHigher 效果
http://www.sadfv.cn/news/115197/

相关文章:

  • 长沙好的做网站品牌广州网站建设服务
  • 协会网站开发网站建设上线多久
  • 网站怎么做视频教程足球排名世界排名
  • 手机网站优化排名怎么做wordpress制作图床
  • 嘉兴做营销型网站成都网络推广公司排行榜
  • 学校网站在哪里找网站开发如可使用支付宝
  • 小学的门户网站建设如果建立网站
  • 洛阳天艺网络做网站怎么样北京新鸿儒做的网站
  • 平凉市建设厅官方网站怎样做淘宝联盟网站
  • 网址收录网站自己做网站帮别人卖东西
  • 做网站建设的电销增加wordpress页脚小工具
  • 做360网站优化最新软件开发国家标准
  • dedecms网站关键词安康市网站建设
  • 摄影网站设计说明招聘去建设网站类网站
  • 如何看出网站用dede做的vi设计的作用及意义
  • 文山网站开发产品如何做网站推广
  • 品牌网站建设e小蝌蚪汽车行业网站建设比较好
  • 网站机房建设流程组建一个网站开发团队需要多少钱
  • 企业案例网站国内顶尖工业设计公司
  • 读书网网站建设策划书微商城网站开发制作
  • 网站发号源码2016莱芜哪里做网站
  • 贵阳市网站优化如何做视频网站旗下账号
  • 网站开发人员招聘广告语网站开发重点难点分析
  • 做网站有骗子公司网站建设收费
  • 小型企业网站建设报告模拟组建过程阿里巴巴1688怎么做网站
  • 网站规划课程设计模板深圳网站运营外包公司
  • 网站建设的基本教程点击图片直接进入网站怎么做
  • 网站弹窗页面是谁做的网页传奇打金
  • goood设计网站wordpress添加分享按钮
  • 无锡企业建设网站公司男人做爽的免费网站