Props 的只读性
组件无论是使用函数声明还是通过 class 声明,都决不能修改自身的 props。来看下这个 sum 函数:

function sum(a, b) {return a + b;
}

这样的函数被称为“纯函数”,因为该函数不会尝试更改入参,且多次调用下相同的入参始终返回相同的结果。

相反,下面这个函数则不是纯函数,因为它更改了自己的入参:

function withdraw(account, amount) {account.total -= amount;
}

React 非常灵活,但它也有一个严格的规则:
所有 React 组件都必须像纯函数一样保护它们的 props 不被更改。

当然,应用程序的 UI 是动态的,并会伴随着时间的推移而变化。在下一章节中,我们将介绍一种新的概念,称之为 “state”。在不违反上述规则的情况下,state 允许 React 组件随用户操作、网络响应或者其他变化而动态更改输出内容。

Props 的只读性相关推荐

  1. [react] 为什么说React中的props是只读的?

    [react] 为什么说React中的props是只读的? React 组件都必须像纯函数一样保护它们的 props 不被更改. 将react组件理解成纯函数,数据流驱动,参数传入不允许做更改 扩展 ...

  2. python文件只读模式_Python脚本去除文件的只读性操作

    如何在PYTHON中移去文件的只读属性, 用chmod命令stat.S_IWRITE import os import stat os.chmod( filename, stat.S_IWRITE ) ...

  3. python 修改文件只读,Python脚本去除文件的只读性操作

    如何在PYTHON中移去文件的只读属性, 用chmod命令stat.S_IWRITE import os import stat os.chmod( filename, stat.S_IWRITE ) ...

  4. ReactJs 第四章组件组件props

    1,组件以及组件值的传递 在之前我们介绍了JSX.React元素,以及元素的渲染,接下来我们要进入React的页面组成关键组件. 这时我们就可以将React元素的范围进行扩充,React元素可以分为 ...

  5. 基于 props 更新 state

    单向数据流 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行.这样会防止从子组件意外改变父级组件的状态,从而导致你的应 ...

  6. React学习笔记 - 组件Props

    React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...

  7. 讲讲React中的State和Props

    基本概念 在React中,组件的数据存储在props和state中. 一个组件的显示形态可以由数据状态和外部参数所决定. 外部参数--props 组件从概念上可以理解为一个函数,因为函数也是封装一个独 ...

  8. react方法返回html_React全家桶之React基础(推荐新手必看)

    学习目标 安装create-react-app脚手架 熟练React基础语法 掌握JSX语法 掌握setState 掌握React生命周期 掌握props传递参数 掌握React组件通信 资源 rea ...

  9. react ui框架_Web开发 React 学习(二十)连载基础篇大结局

    系列文章: 测开技能--Web开发 React 学习(一) 测开技能--Web开发 React 学习(二)环境搭建 测开技能--Web开发 React 学习(三)元素的渲染 测开技能--Web开发 R ...

最新文章

  1. 《C++面向对象高效编程(第2版)》——导读
  2. 苹果8如何设置锁屏无线网连接服务器,iPhone8屏幕解锁怎么设置?苹果iPhone8与8 Plus解锁四种方法...
  3. 北京80后整体亮相《北京作家》
  4. GPU Gems1 - 15 逐像素光照的可见性管理
  5. STM32F013 十元板
  6. C语言exchange函数,C++指针作为函数参数
  7. 宽容随和 不失勤恳 充满信心--对工作、生活的一些感悟
  8. ie的window.open 未指明的错误_错误还是违法——离开的原因之一
  9. 细数国内无人机的江湖门派
  10. python零基础教学plc_Python从基础到开发精修全面学习视频教程
  11. 含论文答辩PPT任务书源码等基于SSM框架演唱会网上订票系统
  12. 批量生成小说人物名字
  13. 华为、中兴、大亚等光猫或路由器DDNS设置方法
  14. 怎么逼自己 成为一个上进的人
  15. 在 Ubuntu 16.04上安装 vsFTPd
  16. Elasticsear使用文档
  17. 第二天 05-安装win7系统与远程桌面开启
  18. 通过google插件Thumbnails实现图片指定大小压缩
  19. 日常记录——WDS路由器无线桥接需要注意的几点问题
  20. Python - 使用python-opencv裁剪原视频为与视频高同宽的视频

热门文章

  1. jquery.validate.min.js使用介绍
  2. Linux从头开始学--学习笔记9知识点补充-ubuntu,centos;在linux上创建c程序;linux基础命令,shell命令,vi命令,man帮助手册
  3. Ubuntu系统下C语言编译以及Makefile编译C语言程序
  4. 降低网站内容同质化的几个建议
  5. 代码阅读方法(自己总结地 厚厚)
  6. Docker入门介绍
  7. 网约车新政陆续出台,共享经济遇阻为哪般?
  8. IIS——服务器上部署网站及遇到的问题图解(二)
  9. Three.js中添加指南针
  10. 《你不可不知的人性》刘墉 读书笔记(二)