第二十四章 案例TodoList 之props限制

简介: 第二十四章 案例TodoList 之props限制

本小节,我们为案例写的所有props标签属性,追加一些类型和必要性的限制。在React中对props进行类型限制是很重要的,原因如下:

  1. 防止错误和bug: 通过对props进行类型限制,可以在开发过程中及早发现错误和bug。这可以节省后期调试的时间和精力。
  2. 提高代码可读性和可维护性: 通过明确定义组件期望的props类型,可以使其他开发人员更容易理解如何使用组件以及传递什么数据。这也可以使代码库随着时间的推移更容易维护。
  3. 提高代码文档化程度: 通过定义组件期望的props类型,它作为组件的一种文档形式。这可以使其他开发人员更容易理解如何使用组件以及传递什么数据。

安装并引入

npm i prop-types

react里面并没有集成标签属性的限制,因为有些习惯使用,而有些不使用,看个人需要以及公司规范。

使用的时候需要在组件头部引入

import PropTypes from 'prop-types'

这里的别名我们还是使用我们之前学习时的别名

改造组件

  • Header组件
  // 对props做类型和必要性的限制
  static propTypes = {
    addTodo: PropTypes.func.isRequired
  }

限制属性addTodo的类型必须是一个方法且必传。

  • List组件
  // 对props做类型和必要性的限制
  static propTypes = {
    updateTodo: PropTypes.func.isRequired,
    todos: PropTypes.array.isRequired
  }

限制属性updateTodo的类型必须是一个方法且必传,限制属性todos必须是一个数组且必传。

  • 查看效果

当我错误给addTodo属性赋值为1时,看看报错否?

Warning: Failed prop type: Invalid prop `addTodo` of type `number` supplied to `Header`, expected `function`.

报错告诉我,它希望这个值是一个函数而不是一个数值,说明对props的限制起作用了。

小总结

  • 对props做限制需要你手动的安装依赖库:npm i prop-types
  • 在组件内部需要定义一个静态的属性:propTypes,该属性是一个对象,里面是你写的限制props的规则。
  • 为了组件的维护性和可读性我们推荐都对props做一些必要性的限制。
相关文章
|
8月前
|
前端开发 数据库
第七章 react组件实例中三大属性之props
第七章 react组件实例中三大属性之props
111 0
|
JavaScript 安全 C++
打破约定俗成:其实Vue3的子组件也是可以“直接”改props的
为了避免混淆,先介绍一下后端语言用的类。一般类可以包含内部成员、属性、方法、事件等。内部成员一般都是私有的(其实也可以设置为公有),调用者不可以直接访问内部成员,而是要通过属性来访问内部成员。
打破约定俗成:其实Vue3的子组件也是可以“直接”改props的
|
8月前
|
前端开发 JavaScript
【掰开揉碎】react中的super(props)
【掰开揉碎】react中的super(props)
|
8月前
|
前端开发
第二十七章 案例TodoList 之总结
第二十七章 案例TodoList 之总结
|
8月前
|
JavaScript
【Vue2.0学习】—ref属性(五十三)
【Vue2.0学习】—ref属性(五十三)
|
8月前
【Vue2.0学习】—Todolist案例自定义事件(六十)
【Vue2.0学习】—Todolist案例自定义事件(六十)
|
前端开发 JavaScript
Render Props 技术:从入门到深入理解
在 Web 前端开发中,有许多强大的技术可以帮助我们构建灵活且可重用的组件。其中一项技术就是 Render Props(渲染属性),它是一种通过组件间传递函数来共享代码的模式。本文将带你深入了解 Render Props 技术,包括它的概念、使用方式以及如何使用 JavaScript 实现它。
193 0
Render Props 技术:从入门到深入理解
|
前端开发
前端学习笔记202307学习笔记第五十九天-react源码-是否错误的使用props属性
前端学习笔记202307学习笔记第五十九天-react源码-是否错误的使用props属性
69 0
|
前端开发
前端学习笔记202304学习笔记第十天-为todolist声明props属性
前端学习笔记202304学习笔记第十天-为todolist声明props属性
49 0
|
前端开发
#yyds干货盘点 react笔记之学习之props父子传值
#yyds干货盘点 react笔记之学习之props父子传值
110 0
#yyds干货盘点 react笔记之学习之props父子传值

热门文章

最新文章