博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<react学习笔记(3)>属性与状态以及组件的生命周期(初始化阶段)
阅读量:6619 次
发布时间:2019-06-25

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

1.属性和状态

1.属性props
  1. 含义:props = properties
  2. 属性:一个事物的性质与关系,属性往往是与生俱来的,无法自己改变的
  3. 属性的两种用法:
    a). "?"中的内容可以是:字符串,对象{},数组{[1,2,3]},变量{var}
    b). <Demo {...props} />
    var props = { one : "123", two : "456" }
  4. getDefaultProps : 设置默认属性 第一个调用
2.状态state
  1. 状态 :事务所处的状况
    状况是由食物自行处理,不断变化的。父组件与子组件都无法改变他的状态。
  2. 状态的用法:
    a). getInitialState : 初始化状态
    b). setState : 更新状态

属性和状态相似点 :

a). 都是纯js对象,使用{}创建的对象
b). 都会触发render更新
c). 都具有确定性,给定相同的属性或者相同的状态,结果是相同的

属性和状态的区分: 组件在运行时需要修改的数据就是状态,所有的数据都可以变成状态

以下是例子

//demo1 :属性的第一种写法
复制代码
//demo2 :属性的第二种写法
复制代码
3.this.props.children属性

children没有与组件的属性一一对应,表示组件的所有子节点,一般用于列表。

例子

复制代码

demo3运行后html会变成如下:

复制代码

状态state的例子

//demo4 state
复制代码

小案例:本地时间的显示

//demo5
复制代码

2.组件的生命周期(初始化阶段)

生命周期:组件的本质是状态机,输入确定,输出一定确定。 一个state对应一个render,状态转换的时候会触发不同的函数。

生命周期的三个阶段:

  1. 初始化阶段 : 设置初始的属性与状态
    a). getDefaultProps: 设置初始的属性,只在第一次调用,实例之间共享引用。
    b). getInitialState: 设置初始的状态。
    c). componentWillMount: 组件将要加载,render之前最后一次修改状态的机会。
    d). render: 只能访问this.props和this.state,只有一个顶层标签(组件),不允许修改状态和DOM输出。
    e). componentDidMount: 成功render并渲染完成真实DOM之后出发,可以修改DOM,要操作DOM也必须在这个阶段完成。

例子

//demo1
复制代码

效果图: 点击后会慢慢往右移动

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

你可能感兴趣的文章
mysql联表查询脚本
查看>>
redis问题汇总
查看>>
什么情况下使用hybrid,怎样配置GVRP
查看>>
通过PXE启动rescue模式修复丢失的系统文件(fstab/bash/mount/grub)
查看>>
Windows Phone SDK 7.1.1 更新
查看>>
Linux常用命令大全
查看>>
jQuery 学习系列笔记(三)
查看>>
C# 视频监控系列 序 [完]
查看>>
Asp.Net知识锦分享
查看>>
SQL Server 2014新特性:分区索引重建
查看>>
关于如何获取WebService中返回的DataTable
查看>>
Kibana + ElasticSearch + Logstash + Redis on RHEL 6
查看>>
MySQL深入08-日志及其参数设定
查看>>
[cocos2d-x]SpaceFighting[安卓/IOS都适用]
查看>>
【一天一个shell命令】文本内容操作系列-sed-简介
查看>>
创建第一个 local network(II)- 每天5分钟玩转 OpenStack(81)
查看>>
dg rman
查看>>
统计学生信息(使用链表完成)
查看>>
Exchange ActiveSync 配置
查看>>
让 SCOM 2007 R2 使用 SQL Server 2008 R2 数据库
查看>>