项目结构:

26_练习2_用户搜索_初始化显示(静态页面) 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 26_练习2_用户搜索_初始化显示(静态页面) 随笔 第2张
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 26_练习2_用户搜索_初始化显示(静态页面) 随笔 第4张
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 26_练习2_用户搜索_初始化显示(静态页面) 随笔 第6张
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 26_练习2_用户搜索_初始化显示(静态页面) 随笔 第8张
.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 26_练习2_用户搜索_初始化显示(静态页面) 随笔 第10张
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

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄