• 七、组件的高级用法-组件的组合(children的用法)-高阶组件-封装组件


    受控组件

    简而言之,就是受到状态state控制的表单,表单的值改变则state值也改变,受控组件必须要搭配onchange方法,否则不能使用

    1. class App extends Component{
    2. state={
    3. text:''
    4. }
    5. control=(e)=>{
    6. this.setState({text:e.target.value})
    7. }
    8. render(){
    9. const{text} = this.state;
    10. return <div>
    11. <input type="text" value={text} onChange={(e)=>{this.control(e)}}/>
    12. <p>{text}</p>
    13. </div>
    14. }
    15. }
    16. export default App

    高阶组件

    1 首先回顾一下什么是高阶函数

    高阶函数是一个函数,它接收函数作为参数或将函数作为输出返回。

    1. function a( functionName ){
    2. functionName()
    3. }
    4. function b(){
    5. console.log('b')
    6. }
    7. a(b)
    8. // a为一个高阶函数

    2 高阶组件

    高阶组件是一个组件,它接收组件作为参数,并将组件作为输出返回

    1. class Small extends Component{
    2. render(){
    3. return

      {this.props.text}

    4. }
    5. }
    6. //高阶组件
    7. function High(Group){
    8. class Height extends Component{
    9. render(){
    10. return
    11. <Group {...this.props}/>
  • }
  • }
  • return Height
  • }
  • //此时的small 经过进化已经不是原来的Small组件了
  • Small = High(Small);
  • class App extends Component{
  • state={
  • text:'高阶组件'
  • }
  • render(){
  • return
  • <Small text={text}/>
  • }
  • }
  • children

    在组件传值时,不光可以传递变量,函数,也可以传递标签,通常我们使用两种方式传递标签: 1 通过属性传递标签,子组件接收时使用this.props

    1. class Text extends Component{
    2. render(){
    3. return
      {this.props.hHtml}
    4. }
    5. }
    6. class App extends Component{
    7. render(){
    8. return
    9. <Text hHtml={

      helloworld

      }/>
  • }
  • }
  • 2 将组件写成双标签,包住要传递的标签,子组件接收时使用this.props.children

    1. class Text extends Component{
    2. render(){
    3. return
      {this.props.children}
    4. }
    5. }
    6. class App extends Component{
    7. render(){
    8. return
    9. <Text>
    10. helloworld

    11. Text>
  • }
  • }
  • 无语非说我质量有问题,凑个字数……

    无语非说我质量有问题,凑个字数……

    无语非说我质量有问题,凑个字数……

    无语非说我质量有问题,凑个字数…… 

    无语非说我质量有问题,凑个字数……

    无语非说我质量有问题,凑个字数……

  • 相关阅读:
    SIT2515T-I/SO,SIT2515T-I/ST,MCP2515T-I/ST,MCP2515T-I/SO
    历史惊人相似,微软Exchange出现2022版“千年虫”bug
    CSS实现超链接标签:鼠标光标为手形、取消下划线、当鼠标悬停时显示下划线
    Android 驾车出行路线规划
    基于矩阵分解算法的智能Steam游戏AI推荐系统——深度学习算法应用(含python、ipynb工程源码)+数据集(四)
    定时任务与线程休眠方式比较
    【多线程】吊打 ThreadLocal,谈谈FastThreadLocal为啥能这么快?
    Android 11 定制系统全局监听触摸事件接口
    C/C++语言100题练习计划 83——背包问题(贪心算法实现)
    项目文档(request页面代码逻辑)
  • 原文地址:https://blog.csdn.net/weixin_45311714/article/details/127889822