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

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

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

login.html

<!doctype html>

<head>
<meta charset="utf-8"> <!--reset.css-->
<link rel="stylesheet" href="/frontend/css/reset.css" /> <!--jquery-->
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <!--react【核心库】【dom操作库】【jsx语法库】-->
<script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
<script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
<script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> <!--bootStrap-->
<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/bootstrap/3.3.2/js/bootstrap.min.js"></script> <!--jquery.cookie-->
<script src="http://apps.bdimg.com/libs/jquery.cookie/1.4.1/jquery.cookie.js"></script> <link rel="stylesheet" href="login.css" type="text/css" />
<title>
页面
</title>
</head>
<body style="margin: auto">
<div id="root"></div> <script type="text/babel" src="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')
);

  

  

最新文章

  1. onselectstart与onselect
  2. SEO是企业发展的永恒主题
  3. Scalaz(29)- Free :Coyoneda - Functor for free
  4. js面向对象组件
  5. redis密码管理
  6. RTL8710 ROM 符号表 函数,常量,变量
  7. 如何用OpenCV自带的adaboost程序训练并检测目标
  8. ubuntu 14.04 https 形式安装docker 私有库 harbor
  9. jdbc 日期时间相关的类型
  10. 破解 crackme4(深入底层抓出关键算法)
  11. 《Head First 设计模式》ch.1 策略(Strategy)模式
  12. 使用ngin的静态文件下载
  13. [前端 4] 使用Js实现图片上传预览
  14. jemter接口测试之---接口测试的一些约定
  15. [转] UIImage 图像-IOS开发 (实例)
  16. CSS基础知识笔记(二)之选择器
  17. let和const命令
  18. win2016 配置IIS 和mysql5.7 迁移数据表的两个小坑
  19. Swift Write to file 到电脑桌面
  20. Ubuntu 使用命令行连接无线网

热门文章

  1. 碎片事物的提交 commitAllowingStateLoss()
  2. MySQL的备份的一些策略和方法的总结
  3. MySQL把多个字段合并成一条记录的方法
  4. 使用SftpDrive+SourceInsight阅读开源代码
  5. C# 根据包含文件的路径和文件的名称的字符串获取文件名称的几种方法
  6. 跨进程(同一app不同进程之间通信)——Android自动化测试学习历程
  7. Blob(二进制)、byte[]、long、date之间的类型转换
  8. (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
  9. poj 2446 Chessboard (二分匹配)
  10. iOS的设备及分辨率、图片命名