程序员书籍笔记 程序员书籍笔记
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML

  • CSS

  • JavaScript

  • GO

  • 正则表达式

  • java

  • TypeScript

  • react

    • 组件
    • this指向
    • 受控组件
    • 组件通信
    • 案例及同级组件通信
    • Props和插槽
      • children属性
      • propTypes校验
      • props默认值
      • 类的静态成员
    • 生命周期
    • 路由
    • 极客PC项目
    • 组件复用
    • hooks
    • hooks更多用法
    • Reudx
    • todo案例
    • react函数组件
    • 基本使用
  • 前端知识

  • jQuery

  • Python

  • C和C++

  • 前端和后端
  • react
yuadh
2022-08-02
目录

Props和插槽

# children属性

  • children属性 :表示该组件的子节点,只要组件有子节点,props 就有该属性
  • children 属性与普通的 props 一样,值可以是任意值

可以充当 vue 里 插槽 的作用

组件-插槽 : Dialog.js

return (
	<div>
		<div>this.props.title('默认值')</div>
		<div>this.props.children</div>
	</div>
)
1
2
3
4
5
6

父组件-使用 : index.js

return (
	<Dialog title={(value)=><h4>值为:{value}</h4>}>
    	<input type="text"/>
    </Dialog>
)
1
2
3
4
5

# propTypes校验

对传递的数据类型进行校验

  1. 导入 prop-types 包
  2. 使用 组件名.propTypes = {} 来给组件添加校验规则
  3. 校验规则通过 PropTypes 对象来指定
import propTypes from "prop-types"

Son.propTypes = {
    money:PropTypes.number,
    list:PropTypes.array
}
1
2
3
4
5
6

约束规则

  1. 常见类型: array 、bool 、func 、number 、object 、string
  2. React元素类型 :element
  3. 必填项:isRequired
  4. 特定结构的对象:shape({})
Son.propTypes = {
    money:PropTypes.number.isRequired,
    list:PropTypes.aray,
    car:Proptypes.shape({
        brand:PropTypes.string.isRequired
        price:PropTypes.number.isRequired
    })
}
1
2
3
4
5
6
7
8

组件 - 传值

state = {
    car:{
        brand:'abc',
        price:100
    }
}
<Son money={100} list{[]} car = {this.state.car}></Son>
1
2
3
4
5
6
7

# props默认值

Son.defaultProps = {
    money:0,
    list:[]
}
1
2
3
4

# 类的静态成员

//实例成员:通过实例调用的属性或方法

//静态成员:通过类或者构造函数本身才能访问的属性和方法

编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48
案例及同级组件通信
生命周期

← 案例及同级组件通信 生命周期→

Theme by Vdoing | Copyright © 2021-2023 yuadh
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×