首页 > 代码库 > react纯前端不依赖于打包工具的代码

react纯前端不依赖于打包工具的代码

 

####react最基础的语法和不依赖环境的纯前端免编译代码

参照:http://www.ruanyifeng.com/blog/2015/03/react.html

 

注意事项:1.必须放倒服务器上,在文件系统上无法运行

 

login.html

<!doctype html>

<head>
    <meta charset="utf-8">
    <script src="https://npmcdn.com/react@15.3.1/dist/react-with-addons.min.js"></script>
    <script src="https://npmcdn.com/react-dom@15.3.1/dist/react-dom.min.js"></script>
    <script src="https://npmcdn.com/babel-core@5.8.38/browser.min.js"></script>

    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">

    <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
    <script src="http://cdn.bootcss.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>


    <link rel="stylesheet" href="http://www.mamicode.com/login.css" type="text/css" />
    <title>
        页面
    </title>
</head>
<body style="margin: auto">
<div id="root"></div>

<script type="text/babel" src="http://www.mamicode.com/login.js"></script>

</body>
</html>

  

 

login.css

.login{
    background-color: red;
}

.header{
    height: 30px;
    background-color: gray;
}

.userRole{
    height:80px;
    background-color: lightcyan;
}
.userId{

}
.userPassword{

}

.submitButtonEnabled{
    color:blue;
}
.submitButtonDisabled{
    color: gray;
}

  

login.js

 

class Login extends React.Component{

    //props的类型和是否必须填写
//    static propTypes = {
//    };

    constructor(props) {
        super(props);
        this.state = {
            userId: ‘‘,
            userPassword: ‘‘,
            submitEnabled: false,
        };
    }

    componentWillMount() {
        console.log("componentWillMount");
    }

    componentDidMount() {
        console.log("componentDidMount");
    }

    componentWillUnmount() {
        console.log("componentWillUnmount");

    }

    //event
    handleClickSubmit() {
        if(this.state.userId.length < 1 || this.state.userPassword.length < 1){
            return;
        }
        $.get("http://publicschool.sinaapp.com/test/test.php?name=jack", function(result) {
            console.log(result);
        });
    }
    handleChangeId () {
        this.setState({
            userId:this.refs._ref_userId.value,
            submitEnabled:this.refs._ref_userId.value.length > 0 && this.refs._ref_userPassword.value.length > 0,
        });
    }
    handleChangePassword () {
        this.setState({
            userPassword:this.refs._ref_userPassword.value,
            submitEnabled:this.refs._ref_userId.value.length > 0 && this.refs._ref_userPassword.value.length > 0,
        });
    }


    //渲染方法
    render () {
    return(
        <div className="login">
            <div className="header">
                {this.props.title}
            </div>

            <div className="userRole">
                {this.props.role}
            </div>

            <input className="userId" type="text" ref="_ref_userId" placeholder="用户名" onChange={()=>this.handleChangeId()} />
            <input className="userPassword" type="password" ref="_ref_userPassword" placeholder="密码" onChange={()=>this.handleChangePassword()} />

            <button type="button" onClick={()=>this.handleClickSubmit()}
                    className={this.state.submitEnabled?"submitButtonEnabled":"submitButtonDisabled"}>登录</button>
        </div>);

    }
}

ReactDOM.render(
    <Login title="title" role="ddd"/>,
    document.getElementById(‘root‘)
);

  

  

react纯前端不依赖于打包工具的代码