React的新旧对比与回顾

news/2024/7/15 19:09:09 标签: react.js

现在React版本还在不断的更新,对于我这种只是中途学了react,对react之前的版本没有太多了解的人,可能又需要补充一些知识了,以下是我需要补充学习的一些知识

类组件的特点
  • 类组件应该继承React.Component父类
  • 类组件必须提供render函数
受控组件
  • HTML中的表单元素是可输入的,也就是有自己的可变状态
  • react中可变状态通常保存在state中,并且只能通过setState()方法来修改
<input type="text" value={this.state.txt} onChange={e => this.setState({txt:e.target.value})} />
state = {txt: ''}
非受控组件
  • 借助于ref,使用原生DOM方式来获取表单元素值
  • ref的作用:获取DOM或组件
this.txtRef = React.createRef()
<input type="text" ref={this.txtRef} />

react组件传值的方法

1、父组件传递数据给子组件

通过props传值
这个比较简单,大家可以自己写一写简单的例子

2、子组件给父组件传值
还是通过props来进行的,不过是通过两者之间的方法去完成的

import * as React from 'react';
type ChildProps = {
  Click1: (params: string) => void;
};
const Child: React.FC<ChildProps> = (props) => {
  const { Click1 } = props;

  return <div onClick={() => Click1('hksndls')}>测试</div>;
};
const App: React.FC = () => {
  const [show, setShow] = React.useState<string>();
  const testRef = (data: string) => {
    console.log(data);
    setShow('hijo');
  };
  return (
    <div>
      {show}
      <Child Click1={testRef} />
    </div>
  );
};

export default App;

3、兄弟组件之间的传值

状态提升

Context
关于Context的部分我都会后面进行补充的

4、props的检验
关于检验的部分,如果我们在写代码的时候并没有用到组件,也就是没有组件自带的校验的时候可以使用一下

5、还必须要提一下的是,可以通过ref来进行父子之间的传值,这个的例子我后面会进行补充


http://www.niftyadmin.cn/n/510763.html

相关文章

lisp捕捉垂足_详细分析G版的“自定义带捕捉的grread函数”源代码

无私奉献了此源代码&#xff0c;使我能给自己的程序顺利增加了拖放中实现点捕捉 的功能。开心之余&#xff0c;也对这个函数本身很好奇&#xff0c;于是就逐句分析了源程序并做了注释&#xff0c;在此记录下来供自己和网友查阅。再次声明&#xff1a;本文列出的源代码&#xff…

React中怎么把自己封装的Modal组件渲染到body下面

这个是一个比较有意思的想法&#xff0c;这么做可以屏蔽修改页面布局样式导致的Modal组件的样式的改变 import * as React from react; import ReactDOM from react-dom; import ./modal.scss;type showProps {visible: boolean;children: React.ReactNode;title: string;onC…

pjax使用小结

简介 虽然传统的ajax方式可以异步无刷新改变页面内容&#xff0c;但无法改变页面URL&#xff0c;因此有种方案是在内容发生改变后通过改变URL的hash的方式获得更好的可访问性(如https://liyu365.github.io/BG-UI/tpl/#page/desktop.html)&#xff0c;但是hash的方式有时候不能很…

基于某些组件库的VUE组件的封装

在antd的Vue版本的基础上封装组件&#xff0c;一般我们都只能想到最基础的关于Vue的组件封装&#xff0c;但其实在Vue的内部其实可以像React那样使用jsx&#xff0c;更灵活的去封装一些组件 下面是我写的一个简单的例子&#xff0c;大家可以看看&#xff0c;参考下&#xff1a;…

PIL实现图片框架以及生成图片验证码

1. PIL的基本概念 PIL&#xff1a;即Python Imaging Library&#xff0c;是Python平台事实上的图像处理标准库。 PIL中涉及通道&#xff08;bands&#xff09;和模式&#xff08;mode&#xff09;这两个重要概念。 &#xff08;1&#xff09;通道 每张图片都是由一个或者多个数…

关于移动端布局的总结

布局视口 在移动端&#xff0c;在默认情况下&#xff0c;布局视口的宽度是远远大于浏览器的宽度。 两个视口是独立存在的&#xff0c;这也很好的解释了为什么对一个网页不进行移动端适配的情况下&#xff0c;用户进行阅读的时候&#xff0c;如果默认情况下布局视口的宽度等于浏…

vim编辑页面怎么退出_怎么退出VI编辑方式

当编辑完文件&#xff0c;准备退出Vi返回到shell时&#xff0c;可以使用以下几种方法之一。  (1)在命令模式中&#xff0c;连按两次大写字母Z&#xff0c;若当前编辑的文件曾被修改过&#xff0c;则Vi保存该文件后退出&#xff0c;返回到shell&#xff1b;若当前编辑的文件没…

php中搭建Web服务器和服务器配置

1.搭建Web服务器 1.1目录结构 1.2访问服务器 访问规则&#xff1a;http://服务器ip地址/php页面 比如&#xff1a; http://localhost/demo.php http://127.0.0.1/demo.php 1.3Apache常用命令 httpd -v 查看apache版本号 version httpd -t 检测运行环境 test 1.4互联网通…