第十节,使用promise操作ajax
来源:互联网 发布:js split函数 编辑:程序博客网 时间:2024/06/05 14:33
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="./js/react.js"></script>
<script src="./js/react-dom.js"></script>
<!-- 原本的 react package 被拆分为 react 及 react-dom 两个 package。其中 react package 中包含 React.createElement、 .createClass、 .Component, .PropTypes, .Children 这些 API,而 react-dom package 中包含 ReactDOM.render、 .unmountComponentAtNode、 .findDOMNode。 -->
<script src="./js/browser.min.js"></script>
<!-- 使浏览器支持babel,你可以使用ECMAscript2015编码(javascript下一代标准) .js、.jsx、.es和.es6 -->
<script src="./js/jquery.min.js"></script>
</head>
<body>
<div id="ex1"></div>
<script type="text/babel">
var Promiseget = React.createClass({
//ceateClass创建的类,首字母必须大写 例如 HelloMessage
//let是ECMA6的声明变量,用它所声明的变量, 只在let命令所在的代码块内有效。
getInitialState(){
//getInitialState 是系统固定方法,不能变更
//用于设置 this.state 内的初始属性
return {
loading : true,
data : null,
error : null,
};
},
componentDidMount(){
//componentDidMount 是系统固定方法,不能变更
//用于已插入真实 DOM之后 的操作
this.props.promise.then(
//使用promise的返回值,设置state
resolve => this.setState({
loading : false,
data : resolve,
}),
reject => this.setState({
loading : false,
error : reject,
})
);
},
render(){
if(this.state.loading){ //判断loading是否为真
return <span>loading...</span>;
}
else if(this.state.error !== null){ //判断是否报错
return <span>Error : {this.state.error.message}</span>;
}
else{
console.log(this.state.data); //可以打印数据看看
let items = this.state.data.items; //获取promise返回的数据items
let itemslist = items.map(function(value,index){
//组装数据
return (
<li key={index}>
<a href={value.html_url} target="_blank" >{value.name}</a> ({value.stargazers_count} stars)
<br/>
{value.description}
</li>
);
});
return (
<main>
<h1>more popular javascript project in githubs</h1>
<ol>{itemslist}</ol>
</main>
);
}
},
})
ReactDOM.render(
//使用promise发送ajax请求
<Promiseget promise={$.getJSON('https://api.github.com/search/repositories?q=javascript&sort=stars')} />,
document.getElementById('ex1')
)
</script>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="./js/react.js"></script>
<script src="./js/react-dom.js"></script>
<!-- 原本的 react package 被拆分为 react 及 react-dom 两个 package。其中 react package 中包含 React.createElement、 .createClass、 .Component, .PropTypes, .Children 这些 API,而 react-dom package 中包含 ReactDOM.render、 .unmountComponentAtNode、 .findDOMNode。 -->
<script src="./js/browser.min.js"></script>
<!-- 使浏览器支持babel,你可以使用ECMAscript2015编码(javascript下一代标准) .js、.jsx、.es和.es6 -->
<script src="./js/jquery.min.js"></script>
</head>
<body>
<div id="ex1"></div>
<script type="text/babel">
var Promiseget = React.createClass({
//ceateClass创建的类,首字母必须大写 例如 HelloMessage
//let是ECMA6的声明变量,用它所声明的变量, 只在let命令所在的代码块内有效。
getInitialState(){
//getInitialState 是系统固定方法,不能变更
//用于设置 this.state 内的初始属性
return {
loading : true,
data : null,
error : null,
};
},
componentDidMount(){
//componentDidMount 是系统固定方法,不能变更
//用于已插入真实 DOM之后 的操作
this.props.promise.then(
//使用promise的返回值,设置state
resolve => this.setState({
loading : false,
data : resolve,
}),
reject => this.setState({
loading : false,
error : reject,
})
);
},
render(){
if(this.state.loading){ //判断loading是否为真
return <span>loading...</span>;
}
else if(this.state.error !== null){ //判断是否报错
return <span>Error : {this.state.error.message}</span>;
}
else{
console.log(this.state.data); //可以打印数据看看
let items = this.state.data.items; //获取promise返回的数据items
let itemslist = items.map(function(value,index){
//组装数据
return (
<li key={index}>
<a href={value.html_url} target="_blank" >{value.name}</a> ({value.stargazers_count} stars)
<br/>
{value.description}
</li>
);
});
return (
<main>
<h1>more popular javascript project in githubs</h1>
<ol>{itemslist}</ol>
</main>
);
}
},
})
ReactDOM.render(
//使用promise发送ajax请求
<Promiseget promise={$.getJSON('https://api.github.com/search/repositories?q=javascript&sort=stars')} />,
document.getElementById('ex1')
)
</script>
</body>
</html>
0 0
- 第十节,使用promise操作ajax
- 用promise封装ajax操作的例子
- 第十节 linux进程操作
- ajax&promise
- 使用Promise封装简单Ajax方法
- javascript系列之使用Promise封装ajax
- Promise+ajax && async+await+promise+ajax
- Promise使用
- Promise使用
- Promise.js with AJAX
- ajax 、jsonp 、Promise 封装
- Promise,Ajax,fetch
- promise中调用ajax
- 手写promise版本ajax
- 封装ajax和Promise
- promise wrap ajax
- Promise封装ajax请求
- 第十节 html网页中使用图片
- 【WLAN从入门到精通-基础篇】第1期——WLAN定义和基本架构
- abstract和interface区别(通俗理解)
- js,jquery获取各种屏幕的高度,宽度
- Spring Boot 学习17--改变JDK编译版本
- android studio查看依赖关系
- 第十节,使用promise操作ajax
- 分布式数据访问服务1
- 关于VS编译DevExpress默认产生几个多余的语言包的问题解决
- PS如何切图
- 谈谈MSG中的 WPARAM 和 LPARAM
- 【洛谷P2709】小B的询问
- Drop,Delete,和Truncate的异同
- storm集群的搭建
- dumpsys命令用法