React 函数组件与类组件属性默认值

简介: React 函数组件与类组件属性默认值

一、函数组件

  • 方式一:使用 defaultProps 设置默认值
import React from "react";
import PropTypes from 'prop-types';
function Sub (props) {
  return (
    <>
      <div>子组件</div>
      { props.list.map((item, index) => <p key={index}>{item}</p>) }
    </>
  )
}
class App extends React.Component {
  render () {
    return (
      <div>
        <Sub></Sub>
      </div>
    )
  }
}
// 设置默认值
Sub.defaultProps = {
  list: [5, 6, 7]
}
// 给组件 Sub 的属性定义校验规则
Sub.propTypes = {
  // 指定 list 数据必须为数组
  list: PropTypes.array
}
export default App
  • 推荐 方式二:使用 函数参数 设置默认值
import React from "react";
import PropTypes from 'prop-types';
// 默认值写这里
function Sub ({ list = [7, 8, 9] }) {
  return (
    <>
      <div>子组件</div>
      { list.map((item, index) => <p key={index}>{item}</p>) }
    </>
  )
}
class App extends React.Component {
  render () {
    return (
      <div>
        <Sub></Sub>
      </div>
    )
  }
}
// 给组件 Sub 的属性定义校验规则
Sub.propTypes = {
  // 指定 list 数据必须为数组
  list: PropTypes.array
}
export default App

二、类组件

  • 方式一:使用 defaultProps 设置默认值
import React from "react";
import PropTypes from 'prop-types';
class Sub extends React.Component {
  render () {
    return (
      <>
        <div>子组件</div>
        { this.props.list.map((item, index) => <p key={index}>{item}</p>) }
      </>
    )
  }
}
class App extends React.Component {
  render () {
    return (
      <div>
        <Sub></Sub>
      </div>
    )
  }
}
// 设置默认值
Sub.defaultProps = {
  list: [5, 6, 7]
}
// 给组件 Sub 的属性定义校验规则
Sub.propTypes = {
  // 指定 list 数据必须为数组
  list: PropTypes.array
}
export default App
  • 方式二:使用 static defaultProps = {} 设置默认值
import React from "react";
import PropTypes from 'prop-types';
class Sub extends React.Component {
  // 设置默认值
  static defaultProps = {
    list: [5, 6, 7]
  }
  render () {
    return (
      <>
        <div>子组件</div>
        {/* 使用方式不变 */}
        { this.props.list.map((item, index) => <p key={index}>{item}</p>) }
      </>
    )
  }
}
class App extends React.Component {
  render () {
    return (
      <div>
        <Sub></Sub>
      </div>
    )
  }
}
// 给组件 Sub 的属性定义校验规则
Sub.propTypes = {
  // 指定 list 数据必须为数组
  list: PropTypes.array
}
export default App
相关文章
|
6月前
|
前端开发 JavaScript API
第八章 react组件实例中三大属性之ref
第八章 react组件实例中三大属性之ref
|
1月前
|
前端开发 JavaScript API
React将组件作为属性传递的最佳实践
本文探讨了在React中将组件作为属性传递的三种常见方式:作为元素传递、作为组件传递、作为函数传递。通过构建带图标的按钮组件,对比分析了每种方式的优缺点,最终推荐将组件作为函数传递,因为它提供了更好的可控性、灵活性和可扩展性。
42 0
|
6月前
|
JavaScript 前端开发
Vue中如何在组件内部定义和使用过渡效果?
Vue中如何在组件内部定义和使用过渡效果?
33 2
|
6月前
|
前端开发
React 函数组件与类组件属性默认值
React 函数组件与类组件属性默认值
73 0
|
6月前
|
JavaScript 前端开发
Vue3中的组件:组件的定义、组件的属性和事件、组件的Slots和动态组件
Vue3中的组件:组件的定义、组件的属性和事件、组件的Slots和动态组件
142 0
|
JavaScript
Vue获取子组件实例对象 ref 属性
Vue获取子组件实例对象 ref 属性
172 0
|
前端开发 数据处理
react的对象属性替换处理
react的对象属性替换处理
103 0
|
前端开发 JavaScript
react组件进阶 属性默认值
上面我的使用方式是在render里面的,这个也可以是constructor里面来进行属性的赋值,具体的使用方式,根据实际情况而定,只要满足在render的前面完成属性的赋值即可。
react组件进阶 属性默认值
|
前端开发 JavaScript
react组件进阶 属性类型检查
我们从名字上就可以知道,静态类型是发生在代码的编写阶段,不发生在代码的运行阶段。所以我们在使用的过程中,就可以及时的提示我们代码是否存在问题等,这个的效果就和 eslint 是一样的。
react组件进阶 属性类型检查
typescript82-react函数组件的类型(组件和属性类型)
typescript82-react函数组件的类型(组件和属性类型)
101 0
typescript82-react函数组件的类型(组件和属性类型)
下一篇
无影云桌面