<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title></title>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<!-- 生产环境中不建议使用 -->
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head> <body>
<div id="app"> </div>
<script type="text/babel">
//React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)
//自顶向下或单向数据流 任何状态始终由某些特定组件所有,并且从该状态导出的任何数据或 UI只能影响树中下方的组件
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {
date: new Date(),
num:10
};//定义一个初始state
console.log(this.state,'state')
}
//在组件输出到 DOM 后会执行 componentDidMount()钩子 在第一次渲染后调用,只在客户端。
//之后组件已经生成了对应的DOM结构;可以在这个方法中调用setTimeout, setInterval或者发送AJAX请求等操作;
componentDidMount() {
console.log('挂载')
this.timerID = setInterval(
() => self.tick(),
1000
);
//转成普通函数式
// let that = this; //that 组件类 Clock的this;
// this.timerID = setInterval(function () {
// return that.tick();
// },1000);
}
//一旦 Clock 组件被从 DOM 中移除,React 会调用 componentWillUnmount()这个钩子函数,定时器也就会被清除;
//在组件从 DOM 中移除之前立刻被调用。
componentWillUnmount() {
console.log('卸载')
clearInterval(this.timerID);
}
//setState() 来调度UI更新
tick() {
this.setState({
date: new Date()
});
}
render() {
return (
<div>
<h1>Hello, react!</h1>
<h2>现在是 {this.state.date.toLocaleTimeString()}.</h2>
<h2>数字加 {this.state.num + 10 + 'string'}.</h2>
</div>
);
}
}
ReactDOM.render(
<Clock />,
document.getElementById('app')
);
</script>
</body> </html>

react基础语法(四) state学习的更多相关文章

  1. react基础语法(五) state和props区别和使用

    props的验证: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  2. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  3. react基础篇四

    列表 & Keys 渲染多个组件 你可以通过使用{}在JSX内构建一个元素集合 下面,我们使用Javascript中的map()方法遍历numbers数组.对数组中的每个元素返回<li& ...

  4. React基础语法学习

    React主要有如下3个特点: 作为UI(Just the UI) 虚拟DOM(Virtual DOM):这是亮点 是React最重要的一个特性 放进内存 最小更新的视图,差异部分更新 diff算法 ...

  5. react 基础语法复习3- 数据传递 & 数据变化(props&&state)

    react当中的数据传递是通过 props以及 state来实现的 props <Header name="kugeliu" /> Header组件当中有个name属性 ...

  6. react基础语法二

    这里只是对自己的学习进行一次总结,也是为了让自己以后如果长时间不使用快速记忆起来的笔记,如果想要学习,还是去官网看文档比较好一些.. 注意 下面的代码的 script标签的type类型都为 “text ...

  7. react 基础语法使用

    刚开始不久react,在菜鸟上及其他前辈网站上学习,下面开始我的自学笔记. 包括: 渲染元素 组件(函数方法定义.es6 class定义) 事件处理 条件渲染 列表 下面代码部分将不会再写html部分 ...

  8. 从零开始学 Web 之 ES6(六)ES6基础语法四

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  9. react 基础语法复习2- react入门以及JSX

    引入 react 以及 ReactDom import React from 'react'; import ReactDOM from 'react-dom'; 将react组件渲染到真实dom节点 ...

随机推荐

  1. 通过xmanager连接Linux图形界面

    今天要在linux下安装数据库,用的是xmanager:之前自己也用过该工具在OUI下做过安装,还很顺利. 但是,今天连接后,运行命令,等了有5分钟,没有出现OUI界面. linux版本: [root ...

  2. js 购物车中,多件商品数量加减效果修改,实现总价随数量加减改变

    <!DOCTYPE html> <html> <head> <meta charset=UTF-8 /> <title>无标题文档</ ...

  3. python-dev 安装错误

    /******************************************************************** * python-dev 安装错误 * 说明: * 今天在安 ...

  4. MFC之document与view实践总结

    Document/View是MFC的基石,负责程序数据的管理和显示,Doculent和Viewd的关系有一档一视,一档多视和多档多视,下面将分别对实现过程中的重点知识进行总结. 1. 视图的同步更新 ...

  5. c++11实现DLL帮助类

    用过DLL的人都会发现,在C++中调用dll中的函数有点繁琐,调用过程如下:在加载dll后还要定义一个对应的函数指针类型,接着调用GetProcAddress获取函数地址,再转成函数指针,最后调用函数 ...

  6. 【ZJOI 2008】树的统计

    [题目链接] 点击打开链接 [算法] 树链剖分模板题 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 3000 ...

  7. bzoj2431逆序对数列——递推

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2431 考虑新加入一个数i,根据放的位置不同,可以产生0~i-1个新逆序对: 所以f[i][j ...

  8. Sublime Text3 python代码去除白色框框

    之所以会出现白色框框,是因为代码不符合PEP8规范!!! 可以装一个 AUTOPEP8 插件,然后按 Ctrl + Alt + r 就会自动帮你PEP8格式化,白色框框就会消失了... 这是原来的博文 ...

  9. windows下patch

    经常在网上看到有人发布patch文件来更新他们的开源代码,例如cegui.ogre等都使用这种形式来修bug或者增加一些小功能.但是,我们下载到的patch文件,貌似是linux/unix的diff工 ...

  10. linux中vim常用命令总结