React里props的用法

简介: React里props的用法

props运用场景



组件传参

父传子


场景一:


传递变量

父组件中直接绑定变量

<Son data={obj}/>

<Son data={obj}{...obj2}/>

子组件this.props.data接收

data 是自定义的属性名


为什么传的第二个对象不解构会报错?


因为第一个对象会有data作为属性名,而第二个对象不解构就没有属性名


场景二:


传递内容

组件极少部分不同时使用

父组件中双标签包裹内容

我是父组件传来的内容

子组件用this.props.children接收

一般用闭合标签,也就是为了这样传递参数

场景三:

传递组件

大多用于子组件大部分相同,少数不同时使用

父组件绑定组件名称<Parent left={ <Son1> }> <Parent left={ <Son2> }>

子组件this.props.left接收

left 是自定义的属性名


示例



父传子


父组件


import React, { Component } from 'react';
import One from './one.jsx'
import Two from './two.jsx'
import Three from './three.jsx'
import Four from './four.jsx'
import Five from './five.jsx'
class Props extends Component {
  render() {
    const obj = {
      age:'32',
      name: "张三"
    }
    const obj2 = {
      job: '前端工程师'
    }
    return (
      <div className="props_main">
        <h3>props的使用场景有哪些</h3>
        <One title="全国名师推荐" />
        {/* 复合数据类型需要用扩展运算符,否则会报错。因为不用扩展运算符,没有属性去接收 */}
        <Two data={obj} {...obj2} />
        <Three>
          <a href="#">
            更多&gt;&gt;
          </a>
        </Three>
        <Three />
        <Four left={<Five />} />
      </div>
    )
  }
}
export default Props


子组件


One子组件


import React, { Component } from 'react';
class One extends Component {
  render() {
  //父组件传一个属性title,子组件用this.props.title接收
    return (
      <div className="props_main">
        <h3>one</h3>
        {/* 第一种传参方法 */}
        {this.props.title}//全国名师推荐
      </div>
    )
  }
}
export default One


Two组件


//这是复合型组件
import React, { Component } from 'react';
class Two extends Component {
  render() {
    const { name } = this.props.data
    const { data,  job } = this.props
    return (
      <div className="props_main">
        <h3>two</h3>
        {this.props.data.name}//元芳
        {name}//元芳
        {data.age}//32
        {job}//前端工程师
      </div>
    )
  }
}
export default Two


Three组件


import React, { Component } from 'react';
class Three extends Component {
  render() {
    return (
      <div className="props_main">
        <h3>three</h3>
        {/* 这种传参方法 ,可以被复用 */}
        {this.props.children}//更多>>
      </div>
    )
  }
}
export default Three


Four组件


import React, { Component } from 'react';
class Four extends Component {
  render() {
    return (
      <div className="props_main">
        <h3>Four</h3>
        {/* 第三种传参方法  */}
        {this.props.left}//我是第五个组件
      </div>
    )
  }
}
export default Four


Five组件


import React, { Component } from 'react';
class Five extends Component {
  render() {
    return (
      <div className="props_five">
        <h3>我是第五个组件</h3>
      </div>
    )
  }
}
export default Five


相关文章
|
3月前
|
前端开发 JavaScript
react学习(13)props
react学习(13)props
|
4月前
|
前端开发
React函数式组件props的使用(六)
【8月更文挑战第14天】React函数式组件props的使用(六)
74 1
React函数式组件props的使用(六)
|
3月前
|
前端开发
学习react基础(2)_props、state和style的使用
本文介绍了React中组件间数据传递的方式,包括props和state的使用,以及如何在React组件中使用style样式。
42 0
|
3月前
|
前端开发
React添加路径别名alias、接受props默认值、并二次封装antd中Modal组件与使用
本文介绍了在React项目中如何添加路径别名alias以简化模块引入路径,设置组件props的默认值,以及如何二次封装Ant Design的Modal组件。文章还提供了具体的代码示例,包括配置Webpack的alias、设置defaultProps以及封装Modal组件的步骤和方法。
88 1
React添加路径别名alias、接受props默认值、并二次封装antd中Modal组件与使用
|
2月前
|
前端开发 JavaScript CDN
React Props
10月更文挑战第8天
19 0
|
3月前
|
前端开发
react学习(15)函数式组件中使用props
react学习(15)函数式组件中使用props
|
3月前
|
前端开发
react学习(14)类式组件的构造器与props
react学习(14)类式组件的构造器与props
|
3月前
|
前端开发 JavaScript
React 中的 props 属性传递技巧
【9月更文挑战第6天】本文详细介绍了React中`props`的基本用法,包括传递基本数据类型、对象和数组。文章通过多个代码示例展示了如何正确使用`props`,并探讨了常见的问题及解决方法,如`props`不可变性、默认值设置及类型检查等。正确掌握这些技巧有助于提升编程效率,编写出更健壮的代码。
91 13
|
4月前
|
前端开发 JavaScript
React类组件props的使用(五)
【8月更文挑战第14天】React类组件props的使用(五)
54 1
React类组件props的使用(五)
|
4月前
|
缓存 JavaScript 前端开发
react.js高级用法
【8月更文挑战第27天】react.js高级用法
47 2