填写您的项目需求给我们
或者直接拨打 7×12小时一对一咨询电话
175 2108 6175
请填写需求信息,我们会在10分钟内与您取得联系
React 是一个比较流行的前端开发框架。
React是一个用于构建用户界面的 JAVASCRIPT 库。
React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。
React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。
React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。
声明式设计 − React采用声明范式,可以轻松描述应用。
高效 − React通过对DOM的模拟,最大限度地减少与DOM的交互。
灵活 − React可以与已知的库或框架很好地配合。
JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。
组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。
1 引包
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)一同使用可以让源码的语法渲染上升到一个全新的水平。
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('example')
);
以上代码将一个 h1 标题,插入 id=”example” 节点中。
2 通过 npm 使用 React
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ npm config set registry https://registry.npm.taobao.org
$ cnpm install [name]
3 使用 create-react-app 快速构建 React 开发环境
$ cnpm install -g create-react-app
$ create-react-app my-app
$ cd my-app/
$ npm start
React JSX
我们不需要一定使用 JSX,但它有以下优点:
* JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。
* 它是类型安全的,在编译过程中就能发现错误。
* 使用 JSX 编写模板更加简单快速。
使用 JSX
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('example')
);
可以在以上代码中嵌套多个 HTML 标签,需要使用一个 div 元素包裹它;
ReactDOM.render(
<div>
<h1>菜鸟教程</h1>
<h2>欢迎学习 React</h2>
</div>
,
document.getElementById('example')
);
独立文件
你的 React JSX 代码可以放在一个独立文件上,例如我们创建一个 helloworld_react.js 文件,然后在 HTML 文件中引入该 JS 文件:
<body>
<div id="example"></div>
<script type="text/babel" src="helloworld_react.js"></script>
</body>
JavaScript 表达式
我们可以在 JSX 中使用 JavaScript 表达式。表达式写在花括号 {};
在 JSX 中不能使用 if else 语句,但可以使用 conditional (三元运算) 表达式来替代。以下实例中如果变量 i 等于 1 浏览器将输出 true, 如果修改 i 的值,则会输出 false.
ReactDOM.render(
<div>
<h1>{1+1}</h1>
<h1>{i == 1 ? 'True!' : 'False'}</h1>
</div>
,
document.getElementById('example')
);
样式
React 推荐使用内联样式。我们可以使用 camelCase 语法来设置内联样式.
React 会在指定元素数字后自动添加 px
var myStyle = {
fontSize: 100,
color: '#FF0000'
};
ReactDOM.render(
<h1 style = {myStyle}>菜鸟教程</h1>,
document.getElementById('example')
);
注释
注释需要写在花括号中
ReactDOM.render(
<div>
<h1>菜鸟教程</h1>
{/*注释...*/}
</div>,
document.getElementById('example')
);
数组
JSX 允许在模板中插入数组,数组会自动展开所有成员:
var arr = [
<h1>菜鸟教程</h1>,
<h2>学的不仅是技术,更是梦想!</h2>,
];
ReactDOM.render(
<div>{arr}</div>,
document.getElementById('example')
);
我们封装一个输出 “Hello World!” 的组件,组件名为 HelloMessage:
var HelloMessage = React.createClass({
render:function(){
return <h1>Hello World</h1>;
}
});
ReactDOM.render(
<HelloMessage/>,
document.getElementById('example')
)
注意,原生 HTML 元素名以小写字母开头,而自定义的 React 类名以大写字母开头,
比如 HelloMessage 不能写成 helloMessage。除此之外还需要注意组件类只能包含一个顶层标签,否则也会报错.
如果我们需要向组件传递参数,可以使用 this.props 对象,
var HelloMessage = React.createClass({
render:function(){
return <h1>Hello {this.props.name}</h1>;
}
})
ReactDOM.render(
<HelloMessage name="hhh"/>,
document.getElementById('example')
)
注意,在添加属性时, class 属性需要写成 className ,for 属性需要写成 htmlFor ,这是因为 class 和 for 是 JavaScript 的保留字。
我们可以通过创建多个组件来合成一个组件,即把组件的不同功能点进行分离。
var WebSite = React.createClass({
render:function(){
<div>
<Name name={this.props.name} />
<Link site={this.props.site} />
</div>
}
})
var Name = React.createClass({
render: function() {
return (
<h1>{this.props.name}</h1>
);
}
});
var Link = React.createClass({
render: function() {
return (
<a href={this.props.site}>
{this.props.site}
</a>
);
}
});
ReactDOM.render(
<WebSite name="菜鸟教程" site=" http://www.runoob.com" />,
document.getElementById('example')
);
填写您的项目需求给我们
或者直接拨打 7×12小时一对一咨询电话
175 2108 6175
请填写需求信息,我们会在10分钟内与您取得联系
请认真填写需求信息,我们会在10分钟内与您取得联系