React.js再探(二)
React.render(
<ezlampcomp onoff="off"></ezlampcomp> ,
document.querySelector("#content"));
var myOnoff = "on";
React.render(
<ezlampcomp onoff={myOnoff}></ezlampcomp>,
document.querySelector("#content"));
var myOnoff = "on";
React.render(
React.createElement(
EzLampComp,
{
onoff : myOnoff
}
),
document.querySelector("#content")
);
<style>
.ez-lamp{
display : inline-block;
margin : 5px;
width : 30px;
height : 30px;
border-radius : 50%;
}
.ez-lamp.on{
opacity :;
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>
<script type = "text/jsx">
//定义React组件
var EzLampComp = React.createClass({
render : function(){ //取得属性值
var onoff = this.props.onoff; //返回React元素
if(onoff == "on")
return <span className = "ez-lamp on"></span>;
else
return <span className = "ez-lamp off"></span>;
}
}); var myOnoff = "on"; setInterval(function() { //渲染React元素
React.render(
<EzLampComp onoff={myOnoff}/> ,
document.querySelector("#content")); myOnoff = myOnoff == "on" ? "off" : "on"; }, 1000); </script>
//HTML
<div style=“borderRadius:50%;height:200px;width:200px"></div>
var myStyle = {
borderRadius:”50%",
width:"200px",
height:"200px"
};
//JSX
var e = <div style="{myStyle}"></div>;
//JavaScript
var e = React.createElement(
"div",{
style : myStyle
}
);
//render
React.render(e,...);
- 对应的属性名称需要用驼峰式,如border-radius要用borderRadius,background-image要用backgroundImage
- hack的前缀(-webkit, -moz, -o, -ms),除了ms,其他首字母都要大写,如-webkit-transition就是WebkitTransition, -ms-transition就是msTransition

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ex15:EzLampComp</title>
<script src="lib/react.js"></script>
<script src="lib/JSXTransformer.js"></script>
<style>
.ez-lamp{
display : inline-block;
margin : 5px;
width : 30px;
height : 30px;
}
</style>
</head>
<body>
<div id="content"></div>
<script type = "text/jsx">
//定义React组件
var EzLampComp = React.createClass({
render : function(){
//取得属性值
var color = this.props.color,
onoff = this.props.onoff;
//亮光颜色
var lights = {
"off":"#888",
"on":"#fff"
};
//透明度
var opacity ={
"off":0.5,
"on":1.0
};
//根据属性设置附加的样式
var style = {
borderRadius : "50%", //对应样式:border-radius
opacity : opacity[this.props.onoff],
background : "-webkit-radial-gradient(30% 30%," + lights[onoff] + " 5%," + color +" 95%)"
};
//返回React元素
return <span className="ez-lamp" style={style}></span>; //JSX
}
});
//渲染React元素
React.render(
<div>
<EzLampComp color="green" onoff="off"/>
<EzLampComp color="green" onoff="on"/>
<EzLampComp color="red" onoff="off"/>
<EzLampComp color="red" onoff="on"/>
<EzLampComp color="blue" onoff="off"/>
<EzLampComp color="blue" onoff="on"/>
</div>
,document.querySelector("#content"));
</script>
</body>
</html>
React.js再探(二)的更多相关文章
- React.js再探(四)
不知道看官们还记不记得上一节的内容,关于生命周期的.我们来个例子重温且练习一下. 传送门:http://www.cnblogs.com/galenyip/p/4574400.html 我们来实现一下时 ...
- React.js再探(三)
很多时候,组件实例的外观和行为我们通过props进行定制就可以了.因为任何时候,组件实例的表现只跟 传过来的props属性 相关. 我们称这种为 无状态/ stateless 组件 即它自身是 无记忆 ...
- React.js终探(七)(完)
我们在前面介绍了组件的各种特性,这一节我们来说说多组件的情况. 在实际开发中,我们的组件难免会遇到有公共部分的情况,如果是个别情况还好,但如果数量比较多的话,那这时候,就需要公用了. 怎么公用呢? R ...
- React.js终探(六)
在React中,我们怎么样使用它跟CSS 3 动画结合在一起使用呢? CSS3 Transitoin CSS3动画要求DOM属性变化的时候才能够被触发.所以这就需要我们把属性变化后的React元素渲染 ...
- .Net平台-MVP模式再探(二)
PS: 本文与 上一遍文章 没有什么必然的联系,可以说是对于MVP的一定的加深,或许在理解上比上一篇多有点难度. 正文 一.简单讲讲MVP是什么玩意儿 如果从层次关系来讲,MVP属于P ...
- react.js 从零开始(二)组件的生命周期
什么是生命周期? 组件本质上是一个状态机,输入确定,输出一定确定. 当状态改变的时候 会触发不同的钩子函数,可以让开发者做出响应.. 一个组件的生命周期可以概括为 初始化:状态下 可以自定义的函数 g ...
- React.js终探(五)
在React中,一切都是看做组件. 而组件的嵌套也是十分常见的. 所以有的组件就作为容器组件 容器组件 React元素可以包含子元素 如 //JSX <ezpanel title="t ...
- 再谈React.js实现原生js拖拽效果
前几天写的那个拖拽,自己留下的疑问...这次在热心博友的提示下又修正了一些小小的bug,也加了拖拽的边缘检测部分...就再聊聊拖拽吧 一.不要直接操作dom元素 react中使用了虚拟dom的概念,目 ...
- 从源码的角度再看 React JS 中的 setState
在这一篇文章中,我们从源码的角度再次理解下 setState 的更新机制,供深入研究学习之用. 在上一篇手记「深入理解 React JS 中的 setState」中,我们简单地理解了 React 中 ...
随机推荐
- 如何与多个线程的操作epoll fd
自己曾经做一个接口server时候,这样的场景下我的设计是多个线程操作同一个epoll fd.彼时,我的理由是epoll的系列函数是线程安全的. 当然有人不理解为什么会有多个线程操作同一个epoll ...
- XML文件编码问题
这两天的过程中的一个项目,以解决编码格式ANSI的xml当文件.我遇到了一些问题.下面的例子现在将总结分析过程. 通过win7记事本或notepad++创建一个xml文件test_source: &l ...
- python django模型内部类meta详细解释
Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.下面对此作一总结: abstract 这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会相应 ...
- CodeCounter代码统计
今天一天写的,困死了 开发环境:VS2012 + WIN8-x64, MFC CSDN下载链接:http://download.csdn.net/detail/npu_wy/7405577 百度云下载 ...
- linux并发连接数查看
1.查看Webserver(Nginx Apache)的并发请求数及其TCP连接状态: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) pri ...
- UVA - 10714 Ants
最多时间就是每仅仅蚂蚁选择最久的爬行方式 最少时间就是每仅仅蚂蚁选择最快地爬行方式 #include<iostream> #include<map> #include<s ...
- windows 设置脚本IP
毫无疑问,在windows设置IP非常方便,因为有操作简单,直观的界面.通过图形用户界面设置IP在一般情况下是足够.但是,对于那些谁经常出差,由人产生的转换工作,这样的变化IP无疑耗时且不方便.假设一 ...
- 【C疯狂的教材】(四)C语言分支语句
1.程序的结构 程序默认从上到下顺序运行(顺序结构) 程序的结构:顺序结构.分支结构.循环结构 2.if分支语句 程序运行的过程中能够有多个选择 格式: if(表达式){ 语句块; } ...... ...
- java实现生产者消费者问题(转)
引言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况: 生产者消费者图 ...
- Could not roll back JDBC transaction途径
[异常]接口数量:DM02;错误代码:ERR_EAI_02_014; 错误叙述性说明:当将中间库异常Could not roll back JDBC transaction; nested excep ...