脚本宝典收集整理的这篇文章主要介绍了React(1),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
React入门
React 是一个用于构建用户界面的 JAVASCRIPT 库。有以下特点:
1.声明式设计 −React采用声明范式,可以轻松描述应用。
2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
3.灵活 −React可以与已知的库或框架很好地配合。
4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但速度快。
5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。
Hello world例子:
<!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>
实例中我们引入了三个库: react.min.js 、react-dom.min.js 和 babel.min.js:
react.min.js - React 的核心库
react-dom.min.js - 提供与 DOM 相关的功能
babel.min.js - Babel 可以将 ES6 代码转为 ES5 代码,这样我们就能在目前不支持 ES6 浏览器上执行 React 代码。Babel 内嵌了对 JSX 的支持。通过将 Babel 和 babel-sublime 包(package)一同使用可以让源码的语法渲染上升到一个全新的水平。
JSX语法:
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('example')
);
上述代码为获取id 为example的标签 添加render里写的html标签或者执行js
PRops -> properties 属性们
render -> 渲染
ReactDom.render(实例化的组件,要渲染到得对象)
我们可以在 JSX 中使用 JavaScript 表达式。表达式写在花括号 {} 中。如下:
ReactDOM.render(
<div>
<h1>{alert(1)}</h1>
</div>
,
document.getElementById('example')
);
ReactDOM.render(
<div>
<h1>{i == 1 ? 'True!' : 'False'}</h1>
</div>
,
document.getElementById('example')
);
React 推荐使用内联样式。我们可以使用 camelCase 语法来设置内联样式. React 会在指定元素数字后自动添加 px :
VAR style = {
background-color: blue;
};
ReactDOM.render(
<h1 style = {style}>hello</h1>,
document.getElementById('example')
);
React 通过React.createClass新建组件,如果我们需要向组件传递参数,可以使用 this.props 对象:
var HelloWorld = React.createClass({
render: function() {
return <h1>Hello {this.props.world}!</h1>;
}
});
ReactDOM.render(
<HelloWorld world="World"/>,
document.getElementById('example')
);
React 复合组件: