转载的~reactReact专项程序员

真正react开发环境+多组件嵌套实际项目-莞式服务包爽版

2017-02-05  本文已影响667人  彬哥头发多

昨天写的教程有个好处就是让你知其然的同时也让你知其所以然,然而但是可但是但可是,作为一个小白我有必要知道react怎么引入么?我有必要知道babel怎么配置么?bower又是啥破玩意?我想两分钟完事儿,别给我扯那些没用的。

我希望几个命令就把全部开发环境给我配置好了,让我直接开发核心功能就行了。具体怎么配置我不关心。

这就好比我现在学开车去了,你告诉我车座怎么调整舒服,手动挡怎么切换,这些有用,但是,我更关心的是既然有自动挡,你为啥不让我先把车能开起来让我能去我想去的地方,而我车玩熟了自然学手动挡也快了。(仅供举例子,学车你还得按照教练的指导学)。

好吧,换个比较污的例子,但是能够说明问题。

你想去体验莞式服务了,然后进来个妹子跟你说你下楼去买个TT,回来她跟你说过来给我床收拾下,这时候估计你一大巴掌呼死她,我是来享受服务的不是服务员。

好,告诉你结论,你的想法是对的,下面我就带你体验下react里面的莞式开发环境,包爽。

1分钟极速搭建正确环境

正确姿势,进入cmd随便切换到一个盘的根目录下输入:

npm install -g create-react-app
create-react-app hello-world
cd hello-world
npm start       

配置完毕!你是不是想说我裤子都脱了你就让我看着?我先告诉你结果:

​ 1.根本不用你配置 bebel webpack ESLint等都给你配好了,而且实时刷新。

​ 2.使用的是移动单页模板,同时采用了class开发方式。

​ 3.可以通过使用 npm build命令直接产生上线程序。

咋玩:

​ 1.npm start 然后在URL里面输入 http://localhost:3000你就看到了

​ 2.你打开app.js就可以看见app这个类,你可以随便加自己的组件。查看index.js你就可以看到类怎么加入到静态页面的。

​ 3.使用npm build 产生上线代码。

以上配置过程绝逼不超过一分钟,开始接着上节课的说正题多组件嵌套的使用,这里不废话上三段代码。一看你就懂看。

这里写一个留言板,注意这个就是官网的待办事项的例子,但是它的例子不好而且不全,这里我做了实际可用的优化,不废话上代码。

重点看class怎么写,还有各个组件怎么嵌套,以及文件怎么拆分。

index.js 这个页面是控制具体的index.html页面怎么显示的,注意 即使是图片和css也要import进来。因为用webpack打包。

import React from 'react';
import ReactDOM from 'react-dom';
import TodoApp from './TodoApp';//只有这句是我自己加的,其余都是自动生成的,一个独立功能就是一个组件
import './index.css';

ReactDOM.render(
    <div>
        <TodoApp />
    </div>,
  document.getElementById('root')
);

下面我们看下 TodoApp.js一个类就是一个文件

import React, { Component } from 'react';
import TodoList from './TodoList';//我这里引入了另外一个组件,下面嵌套用到了,注意导出才能用ES6语法不墨迹
class TodoApp extends React.Component {
    constructor(props) {
        super(props);
        this.handleChange = this.handleChange.bind(this);
        this.handleSubmit = this.handleSubmit.bind(this);
        this.state = {items: [], text: ''};
    }

    render() {
        return (
            <div>
                <h3>TODO</h3>
                <TodoList items={this.state.items} />
                <form onSubmit={this.handleSubmit}>
                    <input onChange={this.handleChange} value={this.state.text} />
                    <button>{'Add #' + (this.state.items.length + 1)}</button>
                </form>
            </div>
        );
    }

    handleChange(e) {
        this.setState({text: e.target.value});
    }

    handleSubmit(e) {
        e.preventDefault();
        var newItem = {
            text: this.state.text,
            id: Date.now()
        };
        this.setState((prevState) => ({
            items: prevState.items.concat(newItem),
            text: ''
        }));
    }
}

export default TodoApp;

TodoList.js这个文件就相当简单了

import React, { Component } from 'react';
class TodoList extends Component {
    render() {
        return (
            <ul>
                {this.props.items.map(item => (
                    <li key={item.id}>{item.text}</li>
                ))}
            </ul>
        );
    }
}

export default TodoList;

上线打包:

npm run build

然后你就能看到hello-world\build 文件夹,这个文件夹上传就行了,我想看看打包结果怎么办也可以,预览下再发布

npm install -g pushstate-server
pushstate-server build

总结:

1.这个文章扫平了你学习react的开发环境障碍

2.这个例子没有跟数据后台对接其实react跟哪个后台对接跟前端没半毛钱关系

3.如果想详细配置,直接看package.json就行

4.你看不懂上面三段代码不是你react不会,是因为你ES6不会玩。

最后一句,JS大法好,信leo得永生。

上一篇 下一篇

猜你喜欢

热点阅读