26_练习2_用户搜索_初始化显示(静态页面)
项目结构:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
import React, {Component} from 'react'
import Search from './search'
import Main from './main'
export default class App extends Component {
render() {
return (
<div className="container">
<Search/>
<Main/>
</div>
)
}
}
app.jsx
import React, {Component} from 'react'
export default class Main extends Component {
state = {
initView: true,//搜索之前
loading: false,//搜索中
users: null,//搜索成功
errorMsg: null//搜索失败
}
render() {
const {initView, loading, users, errorMsg} = this.state
if (initView) {
return <h2>请输入关键字进行搜索</h2>
} else if (loading) {
return <h2>正在请求中......</h2>
} else if (errorMsg) {
return <h2>{errorMsg}</h2>
} else {
return (
<div className="row">
{ //箭头两个作用 1.函数 2.返回
users.map((user, index) => (
<div className="card">
<a href={user.url} target="_blank">
<img src={user.avatarUrl}
style={{width: 100}}/>
</a>
<p className="card-text">{user.name}</p>
</div>
))
}
</div>
)
}
}
}
main.jsx
import React, {Component} from 'react'
export default class Search extends Component {
render() {
return (
<section className="jumbotron">
<h3 className="jumbotron-heading">Search Github Users</h3>
<div>
<input type="text" placeholder="enter the name you search"/>
<button>Search</button>
</div>
</section>
)
}
}
search.jsx
.album { min-height: 50rem; /* Can be removed; just added for demo purposes */ padding-top: 3rem; padding-bottom: 3rem; background-color: #f7f7f7; } .card { float: left; width: 33.333%; padding: .75rem; margin-bottom: 2rem; border: 1px solid #efefef; text-align: center; } .card > img { margin-bottom: .75rem; border-radius: 100px; } .card-text { font-size: 85%; }index.css
import React from 'react'; import ReactDOM from 'react-dom'; import App from './components/app'; import './index.css'; ReactDOM.render(<App/>, document.getElementById('root'));index.js
更多精彩

