博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react中的可控组件与非可控组件
阅读量:6216 次
发布时间:2019-06-21

本文共 836 字,大约阅读时间需要 2 分钟。

上篇分享介绍到了状态提升的内容,在结尾部分提到了本篇要介绍的主角——可控组件与非可控组件,下面就开始学习吧

区别

可控组件与非可控组件的核心区别就是在于输入的值是否与state的值对应

可控组件

可控组件的好处

  • 结合了react的数据流
  • 数据在state中时,修改和使用更加方便,只需要对响应的state进行修改就可以,不需要获取DOM,对DOM进行操作

代码展示

export class Control extends Component {  constructor(props) {    super(props);    this.state={      value: 'hello world'    }  }  onChange = (e) => {    this.setState({      value: e.target.value    });  }  render() {    return (          );  }}复制代码

非可控组件

不可控组件中间的数据的状态是未知的,只能在dom节点中获取,而可控组件中当值变化时会随时同步到state中,状态的变化一直是保持同步的

非可控组件获取值时需要使用ref来从dom节点中拿值

代码展示

export class UnControl extends Component {  onClick = () => {    let input = this.refs.input;    alert(input.value)  }  render() {    return (      
); }}复制代码

OK,今天的学习笔记先到这里了,晚上回家后会写一篇最近在工作中遇到的定时器的坑

转载于:https://juejin.im/post/5ca030866fb9a05e196805b5

你可能感兴趣的文章
Tab Bar Controller和Navigation Controller混合使用详细教程
查看>>
Git - GitHubEducation
查看>>
iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开
查看>>
Xcode 8带来的新特性和坑
查看>>
redis常用客户端命令
查看>>
温故而希望有知新——telnet(明文传送的远程登录)
查看>>
appnet中使用apcu实现进程间共享数据
查看>>
STP
查看>>
nginx其他
查看>>
c++11 容器库
查看>>
Linux 新建用户、用户组,给用户分配权限
查看>>
Android Local Service
查看>>
kvm虚拟化学习笔记(三)之windows kvm虚拟机安装
查看>>
Linux学习笔记(三)——Linux_环境变量
查看>>
重启Nginx 报错
查看>>
《Hadoop大明白》【2】pyspark的应用场景
查看>>
路径匹配
查看>>
Could not write to output file 'c:\windows\........dll' -- '拒绝访问。 '
查看>>
js,php获取中文长度,比较简洁的方法汇总
查看>>
IDEA 编译运行 Spring Boot 2.0 源码
查看>>