美文网首页简单易懂的React魔法
简单易懂的React魔法(14):准备开始编写真正的项目

简单易懂的React魔法(14):准备开始编写真正的项目

作者: 誅诺 | 来源:发表于2017-08-18 17:07 被阅读10次

    现在你可能会想知道教程的下一步是什么,在这之前我们先总结一下现在你学到了什么:

    1. 如何安装webpack,babel和react来用es6进行开发。
    2. 如何创建基本react组件并引入app。
    3. 如何写JSX来渲染文本。
    4. 如何通过传入props来给组件传值。
    5. 如何同时渲染多行文本。
    6. 如何处理浏览器事件。
    7. 如何使用state,state和props的区别。
    8. 如何通过循环渲染数组中的数据。

    所有的这一切都会被用上:我们将会使用Ajax去获取GitHub上的数据。好吧,技术上讲我们要用的方法是Ajaj而不是Ajax。因为github提供的数据是JSON而不是XML,当然这都不重要。如果你之前没用过Ajax,这只是一种获取远程服务器数据的方法。

    在终端按ctrl+c退出webpack dev server然后运行下面的命令:

    npm install --save superagent
    

    SuperAgent是一个轻量级的Ajax工具,它有简单清晰的语法,易于学习使用。我们现在要把之前的练手项目换成用Ajax调用GitHub API得到数据的项目,改动会有点大不过都是你见过的东西:

    注意:当superAgent安装完,再重新打开webpack-dev-server。
    首先在constructor方法里找到这一行:

    src/pages/Detail.js

    const people = [];
    
    for (let i = 0; i < 10; i++) {
        people.push({
            name: chance.first(),
            country: chance.country({ full: true })
        })
    }
    
    this.state = { people };
    

    ……然后删掉他们。我们再也不需要这些了。顺便也删掉import Chance from 'chance'和整个buttonClicked()方法。别担心,你学的这些都会用到,只是现在不需要了。

    作为代替我们会创建一些很简单的初始state:一个空数组。在Ajax完成后它会被填满。代码如下:

    src/pages/Detail.js

    this.state = { commits: [] };
    

    至于render(),我们要改变变量名不然他们只会输出静态数据。之后我们将填入细节,很快的,现在先换成这样:
    src/pages/Detail.js

    render() {
        return (<div>
        {this.state.commits.map((commit, index) => (
            <p key={index}>Some commit data here.</p>
        ))}
        </div>);
    }
    

    为了确保你跟着教程一步一步走,下面给出Detail.js:

    src/pages/Detail.js

    class Detail extends React.Component {
        constructor(props) {
            super(props);
    
            this.state = { commits: [] };
        }
    
        render() {
            return (<div>
            {this.state.commits.map((commit, index) => (
                <p key={index}>Some commit data here.</p>
            ))}
            </div>);
        }
    }
    

    一旦你保存文件,整个页面会变空,因为commits数组是空的,下面我们来修改它。

    相关文章

      网友评论

        本文标题:简单易懂的React魔法(14):准备开始编写真正的项目

        本文链接:https://www.haomeiwen.com/subject/ajbarxtx.html