首页 > 其他分享 >React学习笔记17-属性VS状态

React学习笔记17-属性VS状态

时间:2023-11-03 14:46:44浏览次数:55  
标签:状态 17 React 修改 state VS props 组件 属性

相似点:

都是纯js对象,都会触发render更新,都具有确定性(状态/属性相同,结果相同)

不同点:

1. 属性能从父组件获取,状态不能 2. 属性可以由父组件修改,状态不能 3. 属性能在内部设置默认值,状态也可以,设置方式不一样 4. 属性不在组件内部修改,状态要在组件内部修改 5. 属性能设置子组件初始值,状态不可以 6. 属性可以修改子组件的值,状态不可以   state 的主要作用是用于组件保存、控制、修改自己的可变状态。 state 在组件内部初始化,可以被 组件自身修改,而外部不能访问也不能修改。你可以认为 state 是一个局部的、只能被组件自身控制 的数据源。 state 中状态可以通过 this.setState 方法进行更新, setState 会导致组件的重新渲 染。   props 的主要作用是让使用该组件的父组件可以传入参数来配置该组件。它是外部传进来的配置参 数,组件内部无法控制也无法修改。除非外部组件主动传入新的 props ,否则组件的 props 永远保持 不变。   没有 state 的组件叫无状态组件(stateless component),设置了 state 的叫做有状态组件 (stateful component)。因为状态会带来管理的复杂性,我们尽量多地写无状态组件,尽量少地写有 状态的组件。这样会降低代码维护的难度,也会在一定程度上增强组件的可复用性。

标签:状态,17,React,修改,state,VS,props,组件,属性
From: https://www.cnblogs.com/SadicZhou/p/17807545.html

相关文章

  • 【POJ 1731】Orders 题解(全排列)
    描述商店经理按照标签的字母顺序对各种商品进行了分类。所有标签以同一字母开头的种类都存放在标有该字母的同一仓库(即在同一建筑物内)。在白天,商店经理接收并预订要从商店发货的货物订单。每个订单只需要一种货物。商店经理按照预订的顺序处理请求。你事先知道今天商店经理必须处......
  • vscode 怎么在 ctrl+p ( 转到文件 ) / ctrl+shift+o ( 转到编辑器中的符号 ) 时通过自
    解决方法:使用PowerToy( microsoft/PowerToys:Windowssystemutilitiestomaximizeproductivity(github.com) )来进行按键映射。    ......
  • VS2015 日志
    VA选项颜色与属性 “以斜体显示系统符号”高亮 引用和光标下所有语言-常规-自动大括号完成(&B)取消停靠窗口时崩溃devenv.exe主进程的同目录下的devenv.exe.config文件修改,需改节点AppContextSwitchOverrides添加值;Switch.System.Windows.Interop.MouseInput.O......
  • 单模vs双模光纤收发器:选择与应用全指南
    在当今数据传输的高速公路上,光纤收发器充当了至关重要的角色。其中,单模(Single-Mode)和双模(Multi-Mode)光纤收发器的选择成为了网络设计师的一大难题。究竟应如何选择呢?本文将为您揭开其中的奥秘。单模光纤收发器单模光纤收发器适用于长距离传输,通常在2公里以上,它使用较窄的光纤芯径(约......
  • VS宏相关笔记
    errorC2601:“DllProxyInit”:本地函数定义是非法的VS2015代码中用到了宏#defineDLL_API_Fun(fun) DLL_API__declspec(naked) void* _##fun() \ { \ __asmjmp__##fun; \ } 其中用到了__asm,加了结束分号,加分号是以前代码习惯,旧版本VS的缩进问题,在......
  • Java 8: 异步利器 CompletableFuture vs Parallel Stream 选哪个
    应人们对性能和体验的要求,异步在项目中用的越来越多,CompletableFuture和ParallelStream无疑是异步并发的利器。既然两者都可以实现异步并发,那么带来一个问题:什么时候该使用哪个呢,哪个场景下使用哪个会更好呢?这篇文章因此出现,旨在当执行异步进行编程时CompletableFuture与Parall......
  • React 中复制静态文件到 build的文件夹中
    React中复制静态文件到build的文件夹中环境:umi 框架前提:在跟目录下放置了Dockerfile 文件,在build时需要自动复制到dist文件夹里面。 1. 安装 copy-webpack-plugin 插件 2. .umirc.ts 文件中使用copy命令import{defineConfig}from"umi";exportdefaultde......
  • JVS低代码表单引擎;轻松应对企业不同应用需求
    在日常的设计表单过程中,常常会有需要录入一大段文字的场景,例如评论、留言、产品介绍、内容说明等场景,那么简单的文本框组件就不满足了,这里JVS提供了两种描述类型的组件,多行文本框和富文本组件,如下图所示:多行文本框多行文本可允许用户在一个多行的文本框中输入较长的文本内容,但通常......
  • React 中设置环境变量(开发环境、测试环境和生产环境)
    React中设置环境变量(开发环境、测试环境和生产环境)环境React,Umi框架 1. 安装插件:cross-envnpmicross-env-S  2. 修改 package.json 文件"scripts":{"dev":"cross-envREACT_APP_ENV=devumidev","dev:prod":"cross-envREACT......
  • 数组 vs. 切片
    在Go编程语言中处理数据时,经常会遇到数组和切片。这两者是不同的数据结构,有各自的特性和用途。本文将对Go中的数组和切片进行比较,以帮助大家更好地理解它们。1.长度不同一个主要的区别是长度。在Go中,数组是具有固定长度的数据结构,一旦创建,其大小不可更改。相比之下,切片具有动态......