初识ReactJS的组件化开发(四):ajax加载电影列表时显示"正在加载"
来源:互联网 发布:数据交换架构 编辑:程序博客网 时间:2024/06/15 07:04
定义蒙版组件:
// 遮罩组件var PageMask = React.createClass({ render: function () { return <div className="mask"><p>正在加载...</p></div> }});
设置蒙版的css样式:
.mask{position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: gray;opacity: 0.5;z-index: 999;} .mask p{width: 20%;height: 30px;line-height: 3px;margin: 0 auto;margin-top: 30%;opacity: 1.0;}
在reactJS渲染的时候判断,是否显示”正在加载…”
render: function(){ if(this.state.movie.length == 0){ //代表还没有完成 数据交互,显示一个蒙版 return <PageMask /> }else{ var lis = this.state.movie.map(function (m) { return <li><p className="title">{m.movieName}</p><p className="intro">{m.movieIntro}</p></li> }) return <ul>{lis}</ul> } }
movice数组里有数据了,说明ajax已成功获取到了数据。
最后全部js代码:
// 创建组件var NavBar = React.createClass({ liClick: function () { alert('组件'); }, render: function(){ return <ul> <li><a href="">最新电影</a></li> <li><a href="" onClick={function(){alert('组件')}}>最新评论</a></li> <li><SearchText cssClass="search_text2" /></li> </ul> }});// 搜索框组件var SearchText = React.createClass({ render: function(){ return <input type="text" placeholder="请输入关键字" className={this.props.cssClass}/> }});// 电影列表组件var MoiveList = React.createClass({ getInitialState: function () { return { movie:[] //保存电影json对象数组 }; }, componentDidMount: function () { $.get("http://localhost/myphp/movies.php",null,function (ret) { this.setState({movie:ret}); }.bind(this)) }, render: function(){ if(this.state.movie.length == 0){ //代表还没有完成 数据交互,显示一个蒙版 return <PageMask /> }else{ var lis = this.state.movie.map(function (m) { return <li><p className="title">{m.movieName}</p><p className="intro">{m.movieIntro}</p></li> }) return <ul>{lis}</ul> } }});// 遮罩组件var PageMask = React.createClass({ render: function () { return <div className="mask"><p>正在加载...</p></div> }});ReactDOM.render( // 使用组件 <NavBar />, document.getElementById("navbar"));ReactDOM.render( <MoiveList />, document.getElementById("movielist"));
0 0
- 初识ReactJS的组件化开发(四):ajax加载电影列表时显示"正在加载"
- 初识ReactJS的组件化开发(五):ajax加载评论列表,并定时获取更新
- 初识ReactJS的组件化开发(三):利用ajax渲染电影列表
- 初识ReactJS的组件化开发(六):ajax更新评论列表时的定时器bug修改
- 写一个显示正在加载的组件
- 初识reactJS的组件化开发(一):简单封装
- 初识ReactJS的组件化开发(二):组件嵌套和属性的基本使用
- 初识ReactJS的组件化开发(七):用表单做评论 (上):获取文本框的value
- 初识ReactJS的组件化开发(九):下拉框的使用方法
- 在加载Web页面时显示正在等待的窗体
- Iframe正在加载时显示遮罩层
- Iframe正在加载时显示遮罩层
- 简单的 数据加载显示“数据正在加载,请稍后”
- 页面未加载完成,显示正在加载的效果
- 初识ReactJS的组件化开发(八):用表单做评论 :限制textarea可输入字符长度
- UIWebView 显示正在加载网页
- jquery中ajax下设置‘正在加载’的方法
- Java窗体加载时组件不显示的解决方法
- 网易——比较重量(图的广度优先搜索)
- genymotion启动模拟器报错incompatible state
- Java知识点总结
- iOS -i no matching profiles with a valid signing identity found
- python的slice与.indices的功能
- 初识ReactJS的组件化开发(四):ajax加载电影列表时显示"正在加载"
- synchronized实现同步的三种用法
- Java线程
- 9.ATL实现IDispatch自动化接口
- 《Java中Lock和synchronized的比较和应用》
- iOS汇编教程:ARM(1)和ARM(2)
- 2016_NENU_SoftWare_Summer_ Training_1
- addChildViewController: VS addSubview:
- Hdu 4588 Count The Carries (规律)