React使用jquery方式动态获取数据
好久没写react了,今天有空写一下来react实现实时请求数据,并刷新数据的小demo.
首先我还是选择了jquery方式中自带的ajax获取数据,首先要引用所需的js包

接下来要写一个自定义的js文件,
创建一个react组件:
var Demo = React.createClass({});
//渲染组件
React.render(<Demo url="../data/package.json" setTime="2000" />,document.getElementById('klm'));
我在这里往Demo组件中传人了2个参数一个是url,是为了给ajax请求指定的请求路径,这个setTime是给定时器设置时长参数,写在这为了后期扩展
接下来我们要先定义一个初始化参数:data 用来动态存放数据的
var Demo = React.createClass({
getInitialState:function(){
return {data:[]}
}
});
这步做完之后,接下来我们要写一个单独的ajax方法,去完成获取数据操作。
var Demo = React.createClass({
getAjax:function(){
$.ajax({
url:this.props.url,
dataType:'json',
success:function(data){
this.setState({data:data});
}.bind(this),
error:function(e){
console.log(e.toString());
}.bind(this)
});
},
getInitialState:function(){
return {data:[]}
}
});
上面ajax请求中的url值就是刚才外面传人的url,这步这做完了,接下来我们就是放在什么时候开始执行这个操作,在react的生命周期中,componentDidMount是执行在渲染之后的,意思就是一旦你的组件已经运行了 render 函数,并实际将组件渲染到了 DOM 中,componentDidMount 就会被调用。我就在这步开始做操作:
var Demo = React.createClass({
getAjax:function(){
$.ajax({
url:this.props.url,
dataType:'json',
success:function(data){
this.setState({data:data});
}.bind(this),
error:function(e){
console.log(e.toString());
}.bind(this)
});
},
getInitialState:function(){
return {data:[]}
},
//这个componentDidMount这个生命周期触发在React.render完成页面渲染之后执行
componentDidMount:function(){
this.getAjax();
setInterval(this.getAjax,this.props.setTime)
},
render:function(){
var li = this.state.data.map(function(data){
return (
<li>{data.author} -- {data.text}</li>
)
});
return (
<ul>
{li}
</ul>
)
}
});
//渲染组件
React.render(<Demo url="../data/package.json" setTime="2000" />,document.getElementById('klm'));
在componentDidMount方法中,我先调用this.getAjax(); 已获得页面加载直接获取数据,接着加入了setInterval定时器,开始定时刷新数据,在页面看效果的时候没有传统插入HTML那种刷新的感觉,而是哪里数据变动了哪里就变。。。
这是初始化的获取数据方式,在做单页面场景中,有很多操作,如果牵扯到再执行请求数据,可以在创建的组件中加入新的方法去写ajax。
React使用jquery方式动态获取数据的更多相关文章
- echarts通过ajax动态获取数据的方法
echarts表格的数据一般都需要动态获取,所以总结了一下通过ajax动态获取数据的操作: 插入的方法应该不止一种,我也是接触不久,所以刚学会了一种插入方法: 灵感和经验来自:https://www. ...
- jquery通过ajax获取数据,控制显示的数据条数
效果图: 现在我们可以先看它的json数据,如图所示: 然后可以对应我们的代码进行理解. jquery通过ajax获取数据,并通过窗口大小控制显示的数据条数,以及可以根据 ...
- highcharts动态获取数据生成图表问题
动态获取数据说白点就是从后台传值到前台,前台把这些值赋值给x轴与y轴(这里指的是你X轴与Y轴都是变化的数据,如果你的X轴是固定的,像时间等等的那就另说). 柱状图的动态传值: //获取后台数据 va ...
- react 动态获取数据
如果reander()里面的dom元素是动态获取的,就要将函数放到setSTATE()里面执行
- ECharts 从后台动态获取数据 (asp.net)
(一) 使用工具 visual studio 2017:Web开发:asp.net (代码中的js引用路径以及ajax方法调用的url,记得修改哦) (二) 准备工作(此处写给和我一样小白) 1.动态 ...
- ASP.NET中动态获取数据使用Highcharts图表控件【Copy By Internet】
具体实现的效果如图:
- JS动态获取数据
JS访问数据,有实时获取数据的时候,请加上时间戳 如:'&stampflag=' + Math.round(new Date().getTime() / 1000); 因为有的浏览器(如IE9 ...
- asp.net mvc Areas 母版页动态获取数据进行渲染
经常需要将一些通用的页面元素抽离出来制作成母版页,但是这里的元素一般都是些基本元素,即不需要 进行后台数据交换的基本数据,但是对于一些需要通过后台查询的数据,我们应该怎么传递给前台的母版页呢 这里描述 ...
- fullCalendar动态获取数据
fullCalendar http://fullcalendar.io/docs/event_data/events_function $('#calendar').fullCalendar({ he ...
随机推荐
- Yii2.0 用户登录详解(上)
一.准备 在开始编写代码之前,我们需要思考一下:用户登陆模块,实现的是什么功能?很明显,是登陆功能,那么,登陆需要用户名和密码,我们在数据库的一张表中就应该准备好用户名和密码的字段,再思考一下,如果要 ...
- SQL case
case when Value='1' then 'True' else 'False' end as 'Result'
- SDL 显示解码后的yuv12数据
在上篇h264解码为yuv12后http://jhlong12345.blog.163.com/blog/static/1230631292015725115058709/ ,需要显示出来,使用sdl ...
- UITableView的添加、删除、移动操作
#pragma mark -----表视图的移动操作----- //移动的第一步也是需要将表视图的编辑状态打开 //2.指定哪些行可以进行移动 - (BOOL)tableView:(UITableVi ...
- linux零基础入门总结
啊,notepad++贴过来怎么对齐格式这么糟糕呢? #root用户 $普通用户 linux命令 清屏clear翻页清屏 CRT中ctrl+L reset"清空 CRT中不起作用 ...
- Linux C 堆内存管理函数malloc()、calloc()、realloc()、free()详解
C 编程中,经常需要操作的内存可分为下面几个类别: 堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的 堆区(heap):一般 ...
- MySQL索引的Index method中btree和hash的优缺点
MySQL索引的Index method中btree和hash的区别 在MySQL中,大多数索引(如 PRIMARY KEY,UNIQUE,INDEX和FULLTEXT)都是在BTREE中存储,但使用 ...
- word20161211
H.323 half-duplex / 半双工 handle count / 句柄数 handshaking / 握手 Hardware Compatibility List, HCL / 硬件兼容性 ...
- MongoDB C Driver使用教程
MongoDB C Driver使用教程 转载请注明出处http://www.cnblogs.com/oloroso/ 本指南提供简介 MongoDB C 驱动程序. 在 C API 的详细信息,请参 ...
- Spring预处理
当需要在某些Spring项目一启动,就执行某些操作时,需要实现改接口ApplicationListener,重写onApplicationEvent方法,将需要的预处理操作全部写在该方法中 当初始化完 ...