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

网页制作与网站建设pdf苏州网站制作

网页制作与网站建设pdf,苏州网站制作,wordpress链接加html,网页微信版可以加入腾讯会议吗1.基本概念 在调用组件时,引入一个函数类型的 prop,这个 prop定义了组件的渲染方式。 2.回调渲染 回顾组件通信的几种方式 父-> 子 props 子-> 父 回调、消息通道 任意 状态提升、Context、Redux 等 而 render props 本质实际上是使用到了回调的方…

1.基本概念

在调用组件时,引入一个函数类型的 prop,这个 prop定义了组件的渲染方式。

 

2.回调渲染

回顾组件通信的几种方式

父-> 子 props

子-> 父 回调、消息通道

任意 状态提升、Context、Redux 等

而 render props 本质实际上是使用到了回调的方式来通信。只不过在传统的 js 回调是在构造函数中进行初始化(使用回调函数作为参数),而在 react 中,现在可以通过 props 传入该回调函数,就是我们所介绍的 render prop。

 

从结果论来说,回调的目的是渲染子组件,而渲染的外部细节需要通过父组件注入,实现了控制反转。

 从目的论来说,我们的目的是组件复用。它实现 了内部细节封装,并将外部细节(通过回调函数的形式 )暴露,达到了灵活复用的目的。

 

3.著名应用实例:

React Router 、 Downshift 和 react-motion 

 

4.举例说明

示例1:

依赖 props.children 渲染组件,把控制权交给上层组件,子 组件实现控制反转。

子组件

import React, { Component } from "react";export class ScrollPos extends Component {state = {position: null};componentDidMount() {window.addEventListener("scroll", this.handleScroll);}componentWillUnmount() {window.removeEventListener("scroll", this.handleScroll);}handleScroll = e => {const scrollTop = e.target.scrollingElement.scrollTop;this.setState((state, props) => {return { position: scrollTop };});};render() {return <div className='scroll'>{this.props.children(this.state.position)}</div>;}
}export default ScrollPos;

父组件

import React from "react";
import "./App.css";
import ScrollPos from "./component/ScrollPos";function App() {return (<div className="App"><ScrollPos>{position => <h1>{"Awesome !".substr(0, position * 15)}</h1>}</ScrollPos><div className="spacer" /></div>);
}export default App;

 

示例2:

使用 props 传回调函数,需要多少回调就需要设置多少个 prop,比如这里 Auth 子组件既需要登录成功回调又需要登录失败回调。

子组件

const Auth= (props) => {const userName = getUserName();if (userName) {const allProps = {userName, ...props};return (<React.Fragment>{props.login(allProps)}</React.Fragment>);} else {<React.Fragment>{props.nologin(props)}</React.Fragment>}
};

父组件

<Authlogin={({userName}) => <h1>Hello {userName}</h1>}nologin={() => <h1>Please login</h1>}/>

 

5.浅比较性能优化

如果在父组件中传递 props时 使用箭头函数,每次都会生成新的函数,造成传递给子组件的 props 每次都是新的,引起子组件重新渲染(子组件继承 PureComponent 无效)。因此考虑不使用箭头函数转为使用实例属性的方式:

class MouseTracker extends React.Component {// 定义为实例方法,`this.renderTheCat`始终// 当我们在渲染中使用它时,它指的是相同的函数renderTheCat(mouse) {return <Cat mouse={mouse} />;}render() {return (<div><h1>Move the mouse around!</h1><Mouse render={this.renderTheCat} /></div>);}
}

*  注:这里也可以直接将 renderTheCat 这个渲染方法变成组件。类似于 下面代码中的 movies

import Movies from "./components/movies";<Route path="/movies" component={Movies}/>

  

233

转载于:https://www.cnblogs.com/lemos/p/11006959.html

http://www.lbrq.cn/news/2460673.html

相关文章:

  • 电商网站后台功能bt兔子磁力搜索
  • 网络下载的网站模板能直接上传到虚拟主机百度影响力排名顺序
  • 做网站销售的宁波seo服务推广
  • 做百度百科的网站企业营销策略
  • qq小程序权限设置深圳百度快照优化
  • 教育网站解决方案宁德市旅游景点大全
  • 哪个网站可以学做包子seo快速排名软件首页
  • 张艺兴粉丝做的网站seo网络推广技术员招聘
  • 江门市建设银行网站情感营销经典案例
  • 住房城乡建设网站查询宜兴百度推广公司
  • 铭万做的网站怎么样百度推广服务
  • 山东青岛网站建设公司网络舆情分析
  • 网站备案代理广州抖音推广
  • win2008iis7配置网站企业查询信息平台
  • 装饰设计软件湖北seo服务
  • 装饰网站建设的方案ppt谈谈自己对市场营销的理解
  • wordpress百度网盘什么叫seo
  • 网站设计师培训班推广赚钱app哪个靠谱
  • 建设政府门户网站百度网页排名怎么提升
  • 长安大学门户网站是谁给做的网站标题seo外包优化
  • 网上网站怎么做友情链接外链
  • 大连网站排名优如何去推广一个app
  • 凡客vancl的网站标题淘宝指数入口
  • 东方市住房和城乡建设局网站网络培训seo
  • 南沙规划建设局网站饥饿营销案例
  • 途牛电子商务网站建设人民网 疫情
  • 环保网页设计素材厦门seo优化推广
  • 接单做网站如何制作自己的网页链接
  • 企业门户网站服务器网站seo最新优化方法
  • wordpress screen廊坊seo管理
  • 一、Spring框架结构组成详解
  • connect系统调用及示例
  • Spring Cloud Gateway:微服务架构下的 API 网关详解
  • Mysql实现高可用(主从、集群)
  • Tomcat线程池深度优化指南:高并发场景下的maxConnections计算与监控体系
  • 洛谷刷题7.24