React入门教程1---初见面:http://www.javashuo.com/article/p-wjidhutq-db.htmlcss
React 是一个用于构建用户界面的 JAVASCRIPT 库。html
React主要用于构建UI,不少人认为 React 是 MVC 中的 V(视图)。react
React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。webpack
React 拥有较高的性能,代码逻辑很是简单,愈来愈多的人已开始关注和使用它。web
1.声明式设计 −React采用声明范式,能够轻松描述应用。express
2.高效 −React经过对DOM的模拟,最大限度地减小与DOM的交互。npm
3.灵活 −React能够与已知的库或框架很好地配合。json
4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不必定使用 JSX ,但咱们建议使用它。浏览器
5.组件 − 经过 React 构建组件,使得代码更加容易获得复用,可以很好的应用在大项目的开发中。babel
6.单向响应的数据流 − React 实现了单向响应的数据流,从而减小了重复代码,这也是它为何比传统数据绑定更简单。
本教程使用了 React 的版本为 16.4.0,你能够在官网 https://reactjs.org/ 下载最新版。
React 能够直接下载使用,下载包中也提供了不少学习的实例。
本教程使用了 React 的版本为 16.4.0,你能够在官网 https://reactjs.org/ 下载最新版。
你也能够直接使用 BootCDN 的 React CDN 库,地址以下:
官方提供的 CDN 地址:
注意: 在浏览器中使用 Babel 来编译 JSX 效率是很是低的。
如下实例输出了 Hello, world!
实例解析:
实例中咱们引入了三个库: react.min.js 、react-dom.min.js 和 babel.min.js:
以上代码将一个 h1 标题,插入 id="example" 节点中。
注意:
若是咱们须要使用 JSX,则 <script> 标签的 type 属性须要设置为 text/babel。
若是你的系统还不支持 Node.js 及 NPM 能够自行安装。
咱们建议在 React 中使用 CommonJS 模块系统,好比 browserify 或 webpack,本教程使用 webpack。
国内使用 npm 速度很慢,你可使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
这样就可使用 cnpm 命令来安装模块了:
$ cnpm install [name]
更多信息能够查阅:http://npm.taobao.org/。
create-react-app 是来自于 Facebook,经过该命令咱们无需配置就能快速构建 React 开发环境。
create-react-app 自动建立的项目是基于 Webpack + ES6 。
执行如下命令建立项目:
$ cnpm install -g create-react-app $ create-react-app my-app $ cd my-app/ $ npm start
在浏览器中打开 http://localhost:3000/ ,结果以下图所示:
项目的目录结构以下:
manifest.json 指定了开始页面 index.html,一切的开始都从这里开始,因此这个是代码执行的源头。
尝试修改 src/App.js 文件代码:
修改后,打开 http://localhost:3000/ (通常自动刷新),输出结果以下:
在使用 create-react-app my-app 来建立一个新的React应用,在拉取各类资源时,每每会很是慢,一直卡在那:
fetchMetadata: sill mapToRegistry uri http://registry.npmjs.org/whatwg-fetch
能够看到资源仍是使用了 npmjs.org,解决方法是换成淘宝的资源:
$ npm config set registry https://registry.npm.taobao.org -- 配置后可经过下面方式来验证是否成功 $ npm config get registry -- 或 npm info express
React 代码的书写格式和之前的 JS 有很大的不一样,下面经过对这段代码进行分析了解一下他。
之前使用JS 定义一个变量使用 var 如今用 const:
const div = document.createElement('div');
ReactDOM.render(...) 是渲染方法,全部的 js,html 均可经过它进行渲染绘制,他又两个参数,内容和渲染目标 js 对象。
内容就是要在渲染目标中显示的东西,能够是一个React 部件,也能够是一段HTML或TEXT文本。渲染目标JS对象,就是一个DIV或TABEL,或TD 等HTML的节点对象。
ReactDOM.render(<App />, div);
unmountComponentAtNode() 这个方法是解除渲染挂载,做用和 render 恰好相反,也就清空一个渲染目标中的 React 部件或 html 内容。
ReactDOM.unmountComponentAtNode(div);