【学】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 ...
随机推荐
- Questa Functional Verification-autocheck
1.AutoCheck analysis introduce Autocheck是自动对RTL代码使用形式验证进行规则检查的检查器,是Questa Verify tools的一部分.Autochenc ...
- C# ListView 自定义ToolTip 显示
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
http://blog.csdn.net/zhyl8157121/article/details/8169172 目录(?)[-] 项目说明 开发环境的部署 数据库设计 服务器端程序设计Webserv ...
- 安装和使用Visual Studio 2013并进行简单的单元测试
现在我正在安装visual studio 2013,我听说好多同学都在安装visual studio 2015,但是他好像只支持Win10吧,我就退而求其次安装了visual studio 2013. ...
- ssh整合--struts
一 struts(jar+web.xml+struts.xml+Action) 1import min_jars-------struts-2.3.20.3-all(struts2-blank.war ...
- oracle实现split函数功能
转载: http://blog.csdn.net/jojo52013145/article/details/6758279在实际的应用中,为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 R ...
- IIS 7 php 7.0 部署WE MALL
想在本地环境部署We Mall,本地环境为Win 7+IIS 7+php 7.0 在php manager调用phpinfo ouput()时老是报错: " HTTP 错误 500.19 - ...
- fail to create java virtual machine..
今天打开zend stdio 的时候 出现的错误 fail to create java virtual machine... 然后找度娘了,,都说改xxxxx, 我打开360 ,把内存清理了一遍 ...
- Axis2使war包发布为WebService
首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错 ...
- archlinux vmware一些问题
虚拟机没法上网 sudo modprobe vmnet sudo vmware-network --start