<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://cdn.bootcss.com/react/0.14.1/react.js"></script>
<script src="http://cdn.bootcss.com/react/0.14.1/react-dom.js"></script>
<script src="http://cdn.bootcss.com/babel-core/5.8.32/browser.min.js"></script>
</head>
<style>
.ez-lamp{
display : inline-block;
margin : 5px;
width : 30px;
height : 30px;
border-radius : 50%;
}
.ez-lamp.on{
opacity : 1;
background : -webkit-radial-gradient(30% 30%,white 5%,red 95%);
}
.ez-lamp.off{
opacity : 0.5;
background : -webkit-radial-gradient(30% 30%,#888 5%,red 95%);
}
</style>
<body>
<div id="content"></div>
<script type = "text/babel">
//定义React组件
var EzLampComp = React.createClass({
render : function(){
//取得属性值
var onoff = this.props.onoff;
setInterval(function(){
if(onoff="on")
return <span className = "ez-lamp off"></span>;
else
return <span className = "ez-lamp off"></span>;
},1000);
//返回React元素
// if(onoff == "on")
// return <span className = "ez-lamp off"></span>; //JSX
// else
// return <span className = "ez-lamp on"></span>; //JSX
}
});
//渲染React元素
ReactDOM.render(
<EzLampComp onoff="on"/> , //JSX
document.querySelector("#content"));
</script>
</body>
</html>
这种可以用
mixins
去实现,也就是定时器这个其实是可复用的组件,楼主可以看一下可复用组件,下面贴一下我改了的代码,有啥不懂的可以问我哈