react学习笔记11:this.props.children和分发

前端之家收集整理的这篇文章主要介绍了react学习笔记11:this.props.children和分发前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们知道组件除了单标签调用还可以闭合标签调用

  1. <Tab />

或者:

  1. <Tab></Tab>

1.分发处理

对于下面这种结构,我们在组件中怎么获取包括的结构:

在组件中,我们知道this.props可以拿到调用位置传递的任意属性,同样的react还为我们提供了this.props.children

获取调用位置包含的结构。

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import './index.css';
  4. import registerServiceWorker from './registerServiceWorker';
  5.  
  6.  
  7. //设置组件
  8. class Slot extends React.Component {
  9.  
  10. render() {
  11. return <div>
  12. {this.props.children}
  13. </div>
  14. }
  15.  
  16. }
  17.  
  18.  
  19. ReactDOM.render(
  20. <div>
  21. <Slot><span>分发内容1</span></Slot>
  22. </div>,document.getElementById('root')
  23. );
  24. registerServiceWorker();

审查元素:

同样可以设置多个分发内容

我们console.log(this.props.children)

2.分发组件

我们把里面的静态结构修改为一个组件的调用

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import './index.css';
  4. import registerServiceWorker from './registerServiceWorker';
  5.  
  6.  
  7. //设置组件
  8. class Slot extends React.Component {
  9. render() {
  10. return <div>
  11. {this.props.children}
  12. </div>
  13. }
  14. componentDidMount() {
  15. console.log(this.props.children)
  16. }
  17. }
  18. //设置组件2
  19. class Slot2 extends React.Component {
  20. render() {
  21. return <div>
  22. 我是组件2
  23. </div>
  24. }
  25. }
  26.  
  27. ReactDOM.render(
  28. <div>
  29. <Slot><Slot2></Slot2></Slot>
  30. </div>,document.getElementById('root')
  31. );
  32. registerServiceWorker();

我们会发现this.props.children同样可以识别解析。

猜你在找的React相关文章