1.axios
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ajax_Axios</title>
<script src="../common/react/development.js"></script>
<script src="../common/react-dom/development.js"></script>
<script src="../common/babel.js"></script>
<script src="../common/prop-types.js"></script>
<script src="../common/axios/axios.js"></script>
</head>
<body>
<div id="app1"></div>
<script type="text/babel">
class AxiosComponent extends React.Component{
state = {
repoName:'',
repoUrl:''
};
componentDidMount(){
console.log("componentDidMount---->");
//axios发送请求
const url = `https://api.github.com/search/repositories?q=r&sort=stars`;
console.log("loading data...");
let promise = axios.get(url);
promise.then(response=>{
console.log(response);
const result = response.data;
const {name,html_url} = result.items[0];
this.setState({
repoName:name,
repoUrl:html_url
})
});
}
render(){
const {repoName,repoUrl} = this.state;
if(!repoName){
return <h2>Loading...</h2>
}
return(
<div>
<h2>Most start is<a href={repoUrl}>{repoName}</a></h2>
</div>
)
}
}
ReactDOM.render(<AxiosComponent />, document.getElementById('app1'));
</script>
</body>
</html>
2.fetch
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ajax_Fetch</title>
<script src="../common/react/development.js"></script>
<script src="../common/react-dom/development.js"></script>
<script src="../common/babel.js"></script>
<script src="../common/prop-types.js"></script>
<script src="../common/axios/axios.js"></script>
</head>
<body>
<div id="app1"></div>
<script type="text/babel">
class AxiosComponent extends React.Component{
state = {
repoName:'',
repoUrl:''
};
componentDidMount(){
console.log("componentDidMount---->");
//axios发送请求
const url = `https://api.github.com/search/repositories?q=r&sort=stars`;
console.log("loading data...");
// const type = 'axios';
const type = 'fetch';
console.log(`请求类型为:${type}`);
if(type==='axios') {
let promise = axios.get(url);
promise.then(response => {
console.log(response);
const result = response.data;
const {name, html_url} = result.items[0];
this.setState({
repoName: name,
repoUrl: html_url
})
}).catch(err => {
console.log(err);
});
}else if(type==='fetch') {
//fetch发送请求
fetch(url).then(response => {
console.log('response', response);
return response.json();
}).then(data => {
console.log('data', data);
const {name, html_url} = data.items[0];
this.setState({
repoName: name,
repoUrl: html_url
})
});
}
}
render(){
const {repoName,repoUrl} = this.state;
if(!repoName){
return <h2>Loading...</h2>
}
return(
<div>
<h2>Most start is<a href={repoUrl}>{repoName}</a></h2>
</div>
)
}
}
ReactDOM.render(<AxiosComponent />, document.getElementById('app1'));
</script>
</body>
</html>