【学】React的学习之旅1
React的学习之旅1
- 单标签要有斜杠代表结束
- 用React.createClass()方法时,赋值后的组件名称首字母一定要大写
- 一定要先定义组件,再用ReactDOM.render调用
- 组件里render对应的函数的返回值,如果有多个html标签,外面一定要再多包一层,外面可以用小括号包起来
var FirstComponent = React.createClass({ //FirstComponent首字母大写
render:function(){
return <img src="./image/1.png"/>
}
});
//定义组件(组件名首字母必须大写)
//React对象调用createClass方法,把一个对象传进去,对象有个键是render,对应是个函数,有个返回值
var FirstComponent = React.createClass({
render:function(){
return <img src="./image/1.png"/>
}
});
//这里将封装好的FirstComponent,用ReactDOM的render方法添加到指定的DOM中
ReactDOM.render(
<FirstComponent />,
document.getElementById('wrap')
);
ReactDOM.render(
<FirstComponent />,
document.getElementById('div1')
);
var FirstComponent = React.createClass({
render:function(){
return ( //这里有2个标签,外面必须再包一层,另外可以用小括号包一下
<div>
<img src="./image/1.png"/>
<h2>欢迎学习React</h2>
</div>
)
}
});
- 利用
creatClass定义的属性,可以在html中传入不同的值,然后用{this.props[属性名]}的方式来定义这个值是可以在外面定义的,然后在后面的ReactDOM.render方法中调用时,在每个对应的html标签中传入。方法有两种,一种是直接赋值,一种是把所有属性名和属性值放进一个对象中。 {...[对象名称]}比如{...obj}是一种语法糖,意思将obj中的键值对全部按照标签的属性名和属性值的方式添加到html标签中- 要注意的是,在
createClass时,里面标签对应的值用了{}表示,这个在标签中用{}的做法,babel会自动解析成js代码
var FirstComponent = React.createClass({
render:function(){
return (
<div>
<h2>{this.props.title}</h2>
<input type="text" />
<input type="button" value={this.props.btnValue}/> //注意这里的要用到this.props.btnValue,btnValue要对应好传入对象中的键,而this.props相当于谁调用渲染了这个组件,就传入该标签中属性的属性对象(属性键值对)
</div>
)
}
});
var obj = {
title: 'Welcome to study React!!!',
btnValue: 'Confirm!'
};
var obj2 = {
title: '欢迎学习react!!!',
btnValue: '确认!'
};
ReactDOM.render(
//<FirstComponent title={obj.title} btnValue = {obj.confirm} />,
<FirstComponent {...obj} />,//这里用了语法糖,把obj中的键值对title和btnValue以及它们对应的值赋给FirstComponent标签中
document.getElementById('wrap')
);
ReactDOM.render(
<FirstComponent {...obj2}/>,//第二个组件标签渲染时用的是obj2中的属性名和属性值
document.getElementById('div1')
);
- 如果要直接给组件中的
html标签添加class,不能直接在标签里写class,而应该要用className,因为这里是会被解析成js代码
var Hello = React.createClass({ //这里是className,而不是class
render:function (){
return (<h2 className="active">Hello {this.props.title}.{this.props.name}</h2>)
}
});
- 如果要在组件里的
html标签中直接写入行间样式,不能使用字符串的形式,而是可以用json的形式,但是如果不用json存成变量,那就要写{{}}的形式,外面一层{}相当于解析js代码,里面一层才是json的那个大括号 - 行间样式如果涉及到复合样式,也要用驼峰的方式,而不是
css里用-连接了,时刻记住这里是js解析,另外属性值仍然要用''包起来
var Hello = React.createClass({
render:function (){ //这里fontSize,而不是font-size,用了2个大括号宝珠
return (<h2 style={{color:'deeppink',fontSize:'30px'}}>Hello{this.props.name}</h2>)
}
});
【学】React的学习之旅1的更多相关文章
- 【学】React的学习之旅7-官方例子总结
如果在标签里有注释,除了使用/**/之外,如果写在子标签中,外面还需要用{}包起来,指明这段是javascript代码,否则这段注释会直接显示在页面上,例如 render:function (){ r ...
- 【学】React的学习之旅5-组件的嵌套
复习 [array].map(function(item,index){})方法,传参里的函数需要有return值,一般用map()后都要用一个变量接一下,这个返回的还是一个数组,只是把每次遍历到的数 ...
- 【学】React的学习之旅4-添加事件(onChange)
实现联动绑定,在文本框中输入内容的同时,后面的span里内容跟着一起变化: onChange(),一旦触发一次变动,就执行某个函数: 既然已经在getInitialState属性里申明了一个变量inp ...
- 【学】React的学习之旅3 - 添加事件(onClick)
button除了用<input type="button">之外,还可以直接用<button></button>来创建,而2个标签的中间的内容就 ...
- 【学】React的学习之旅2 - React Component的生命周期
分成三个状态: Mounted Update Unmounted Mounted:当我们看到组件在浏览器中从无到有的效果的时候,mounted已经结束了,这个组件已经被mounted了 有这个阶段有2 ...
- 【学】React的学习之旅6-组件的嵌套2
<input type=text placeholder='aaa'>, placeholder属性是定义文本框在没有输入值之前显示的一段灰色提示 ()=>{}箭头函数在ECMA6里 ...
- WCF学习之旅—TCP双工模式(二十一)
WCF学习之旅—请求与答复模式和单向模式(十九) WCF学习之旅—HTTP双工模式(二十) 五.TCP双工模式 上一篇文章中我们学习了HTTP的双工模式,我们今天就学习一下TCP的双工模式. 在一个基 ...
- 180分钟的python学习之旅
最近在很多地方都可以看到Python的身影,尤其在人工智能等科学领域,其丰富的科学计算等方面类库无比强大.很多身边的哥们也提到Python非常的简洁方便,比如用Django搭建一个见得网站只需要半天时 ...
- react native 学习一(环境搭配和常见错误的解决)
react native 学习一(环境搭配) 首页,按照http://reactnative.cn/docs/0.30/getting-started.html#content上的介绍,下载安装pyt ...
随机推荐
- Resharp注册码
admin@youbaozang.comSpFEMUSrPM0AGupqlNs6J1Ey7HrjpJZy admin@wuleba.comd6GuozPm+bsCmPOtyJ2w1ggRnCr3Vk5 ...
- iOS 线性滚动
在这里,给大家带来简单的滚动实现,首先看一下实现效果. 通过观察不难发现,有很多地方并不是那么容易想出来的,对于篇随笔,感兴趣可以查查相关资料,我就不尽行过多说明,(主要是开考文字,不好说明
- vs2010设置断点进行调试时不起作用
1.打开vs2010 2.点击web下的“属性” 3.点击“生成” 4.点击最下方的“高级” 5.在“输出”-调试信息中选择“full”,点击确定按钮即可
- ie8的兼容
1.IE8以下不支持getElementsByClassName方法//解决IE8之类不支持getElementsByClassNameif (!document.getElementsByClass ...
- 【转】Web Service单元测试工具实例介绍之SoapUI
转自:http://blog.csdn.net/oracle_microsoft/article/details/5689585 SoapUI 是当前比较简单实用的开源Web Service 测试工具 ...
- 机械表小案例之transform的应用
这个小案例主要是对transform的应用. 时钟的3个表针分别是3个png图片,通过setInterval来让图片转动.时,分,秒的转动角度分别是30,6,6度. 首先,通过new Date函数获取 ...
- java 反射的应用 以及通过反射 用到的工厂模式
java反射详解 本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解. 下面开始正文. [案 ...
- hadoop 集群跑的时候用到hbasejar 文件的引用问题
1. 创建软连接 ln -s /home/hadoop/bigdater/hbase-0.98.6-cdh5.3.6/conf/hbase-site.xml ./hbase-site.xml(记得这里 ...
- 前端学习 第七弹: Javascript实现图片的延迟加载
前端学习 第七弹: Javascript实现图片的延迟加载 为了实现图片进入视野范围才开始加载首先: <img src="" x-src="/acsascas ...
- (转)Should 断言的基本使用方法
一.基础 RobotFramework带有丰富的系统关键,使用时无需导入,直接使用,为写自动化用例带来了极大的方便:不能停留在知道或者是会得程度,只有熟练使用各关键字,才能提升自动化用例的写作效率.下 ...