【一起来烧脑】一步React.JS学会体系

[外链图片转存失败(img-cn4fbVDq-1563575047348)(https://upload-images.jianshu.io/upload_images/11158618-8c6f3d2b8ff0bec3.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

React.JS是用于构建用户界面的JavaScript库

React.JS主要用于构建UI

下载使用:React.JS下载地址

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
<script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
<script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('example')
);
</script>
</body>
</html>

通过npm

$ npm install -g cnpm --registry=https://registry.npm.taobao.org 

$ npm config set registry https://registry.npm.taobao.org

$ cnpm install [name]

使用create-react-app快速构建

create-react-app 自动创建的项目是基于 Webpack + ES6

$ cnpm install -g create-react-app
$ create-react-app my-app
$ cd my-app/$ npm start

React.JS使用JSX来替代常规的JavaScript

使用JSX

JSX看起来类似HTML。

实例:

ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('example')
);

样式

React.JS 推荐使用内联样式

var myStyle = {
fontSize: 100,
color: '#FF0000'
};
ReactDOM.render(
<h1 style = {myStyle}></h1>,
document.getElementById('example')
);

注释

注释需要写在{}中

数组

JSX 允许在模板中插入数组,数组会自动展开所有成员

实例:

var arr = [
<h1>123</h1>,
<h2>welcome</h2>,
];
ReactDOM.render(
<div>{arr}</div>,
document.getElementById('example')
);

组件使应用更容易管理。

实例:

var HelloMessage = React.createClass({
render: function() {
return <h1>Hello World!</h1>;
}
});
ReactDOM.render(
<HelloMessage />,
document.getElementById('example')
);

如果需要向组件传递参数,可以使用this.props对象。

var HelloMessage = React.createClass({
render: function() {
return <h1>Hello {this.props.name}</h1>;
}
});
ReactDOM.render(
<HelloMessage name="coding" />,
document.getElementById('example')
);

状态

class Clock extends React.Component {
constructor(props) {
super(props); this.state = {date: new Date()};
} render() {
return (
<div>
<h1>Hello, world!</h1>
<h2>现在是 {this.state.date.toLocaleTimeString()}.</h2>
</div>
);
}
}
ReactDOM.render(
<Clock />,
document.getElementById('example')
);

React.JS Props

var HelloMessage = React.createClass({
render: function() {
return <h1>Hello {this.props.name}</h1>;
}
});
ReactDOM.render(
<HelloMessage name="123" />,
document.getElementById('example')
);

可以通过getDefaultProps()方法为props设置默认值。

var HelloMessage = React.createClass({
getDefaultProps: function() {
return {
name: '123'
};
},
render: function() {
return <h1>Hello {this.props.name}</h1>;
}
}); ReactDOM.render(
<HelloMessage />,
document.getElementById('example')
);

React.JS API

设置状态–setState

替换状态–replaceState

设置属性–setProps

替换属性–replaceProps

强制更新–forceUpdate

获取DOM节点–findDOMNode

判断组件挂载状态–isMounted

组件生命周期状态

组件的生命周期可以分为三个状态:

mounting–已插入真实DOM

updating–正在被冲洗渲染

unmounting–已移出真实DOM


请点赞!因为你们的赞同/鼓励是我写作的最大动力!

欢迎关注达叔小生的简书!

这是一个有质量,有态度的博客

[外链图片转存失败(img-79UnLcN0-1563575047356)(https://upload-images.jianshu.io/upload_images/11158618-9ab0d3fef85d80ce?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

上一篇:MPI之聚合通信-Scatter,Gather,Allgather


下一篇:flex基础示例