react小结
2024-10-12 20:19:20
react基础小结
1. 例子
import React from 'react'
import { render } from 'react-dom' // 定义组件
class Hello extends React.Component {
render() {
// return 里面写jsx语法
return ( <p>hello world</p> )
}
} // 渲染组件到页面
render( <Hello/>, document.getElementById('root') )
import React from 'react'
这里的react对应的是./package.json
文件中dependencies
中的'react'
,即在该目录下用npm install
安装的 react 。npm 安装的 react 的物理文件是存放在./node_modules/react
中的,因此引用的东西肯定就在这个文件夹里面。./node_modules/react/package.json
中的"main": "react.js",
,这里的main
即指定了入口文件,即./node_modules/react/react.js
这个文件 2. jsx语法
1)使用一个父节点包裹
jsx中不能一次性返回零散的多个节点,如果有多个则包含到一个节点中
如:
return (
<div>
<p>段落1</p>
<p>段落2</p>
<p>段落3</p>
</div>
)
3. 注释
jsx中用{/**/}的注释形式
如:
return(
//jsx外的注释
<div>
{/*jsx里面的注释*/}
<p>hello</p>
</div>
)
4. 样式
css样式:
<p className="class1">hello</p>
<!--用className代替class*/
内联样式:
<p style={{color:'red',fontSize:'20px'}}>hello</p>
<!--注意{{}},和驼峰写法-->
5. 事件
如:click
class Hello extends React.Component{
render(){
return (
<p onClick={this.clickHandler.bind(this)}>hello</p>
)
} clickHandler(event){
console.log('yes')
}
}
注意:onClick驼峰写法
6. 循环
7. 判断
jsx中一般会用到三元表达式(表达式也是放在{}中的)
如:
return(
<div>
<p>段落1</p>
{
true
? <p> true </p>
: <p> false </p>
</div>
}
</div>
)
也可以这样使用:
<p style={{display: true? 'block' ? 'none'}}> hello world</p>
8. 数据传递&数据变化
1) props
如果
<Header title="Hello页面"/>
在Header组件中可以这样取到
render(){
return(
<p>{this.props.title}</p>
)
}
在react中,父组件给子组件传递数据时,就是以上的方式,通过给子组件设置props,子组件获取props中的值便可完成数据传递。
2)props&state
如果组件内部自身的属性发生变化
class Hello extends React.Component{
constructor(props,context){
super(props,context);
this.state={
//显示当前时间
now:Date.now()
}
}
render(){
return(
<div>
<p>hello world {this.state.now}</p>
</div>
)
}
}
react会实时监听每个组件的props和state值,一旦有变化,会立刻更新组件,将结果重新渲染到页面上
var LikeButton = React.createClass({
getInitialState: function (){
return {liked : false};
},
handleClick: function (event) {
this.setState({liked: !this.state.liked});
},
render: function(){
var text = this.state.liked ? 'like' : 'haven\'t liked';
return (
<p onClick={this.handleClick}>
you {text} this click to toggle
</p>
);
}
});
3)智能组件&木偶组件
最新文章
- Android 底部弹出Dialog(横向满屏)
- 汇编、c语言、c++的一些想法。
- jqGrid预定义的格式化类型formatter
- 对ASP.NET运行机制之 一般处理程序ashx的学习
- ExtJS4图片验证码的实现
- SpringMvc 相关,bean map转换,百度天气,base64.js,jsBase64.java;
- IOS9中出现的错误
- Dictionary 总结
- Oracle11g R2学习系列 之四Maven+Struts+Spring实验
- g711u与g729比較编码格式
- 大数据系列之Flume+HDFS
- Tomcat 部署安装及JVM调优~
- bzoj 2588 Count on a tree
- HTML 5 <;embed>; 标签
- servlet下载文件
- tomcat启动成功后访问却404
- appium:运行脚本时,报404的解决办法
- Jquery Ajax 调用后台并返回数据
- VMware workstation12 密匙
- 系统用户在Samba服务器中起一个别名