codecamp

React 入门

JSFiddle

开始 Hack React 的最简单的方法是用下面 JSFiddle 的 Hello Worlds:

入门教程包 (Starter Kit)

开始先下载入门教程包

在入门教程包的根目录,创建一个含有下面代码的 helloworld.html

<!DOCTYPE html><html>
  <head>
    <script src="build/react.js"></script>
    <script src="build/JSXTransformer.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/jsx">
      React.render(
        <h1>Hello, world!</h1>,        document.getElementById('example')
      );    </script>
  </body></html>

在 JavaScript 代码里写着 XML 格式的代码称为 JSX;可以去 JSX 语法 里学习更多 JSX 相关的知识。为了把 JSX 转成标准的 JavaScript,我们用 <script type="text/jsx"> 标签包裹着含有 JSX 的代码,然后引入JSXTransformer.js 库来实现在浏览器里的代码转换。

分离文件

你的 React JSX 代码文件可以写在另外的文件里。新建下面的 src/helloworld.js

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

然后在 helloworld.html 引用该文件:

    <script type="text/jsx" src="src/helloworld.js"></script>

离线转换

先安装命令行工具(依赖 npm):

npm install -g react-tools

然后把你的 src/helloworld.js 文件转成标准的 JavaScript:

jsx --watch src/ build/

只要你修改了, build/helloworld.js 文件会自动生成。

React.render(
  React.createElement('h1', null, 'Hello, world!'),  document.getElementById('example')
);

对照下面更新你的 HTML 代码

<!DOCTYPE html><html>
  <head>
    <title>Hello React!</title>
    <script src="build/react.js"></script>
    <!-- 不需要 JSXTransformer! -->
  </head>
  <body>
    <div id="example"></div>
    <script src="build/helloworld.js"></script>
  </body></html>

想用 CommonJS?

如果你想在 browserifywebpack 或者或其它兼容CommonJS的模块系统里使用 React,只要使用 react npm 包即可。而且,jsx 转换工具可以很轻松的地集成到大部分打包系统里(不仅仅是 CommonJS)。

下一步

去看看入门教程和入门教程包 examples 目录下的其它例子学习更多。

我们还有一个社区开发者共建的 Wiki:workflows, UI-components, routing, data management etc.

恭喜你,欢迎来到 React 的世界。


教程
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }