# React 快速入门 ## 1. Hello World ```html Hello React!
``` 刚才代码发生的是:在选择的 DOM 节点中渲染了一个 React 组件。渲染过程从一个顶层组件开始,顶层组件可以按需包含许多子元素(子元素还可以嵌套子元素)。 ReactDOM 对象只包含几个方法,其中 `render()` 方法是最有用的。从 0.14 版本开始,它们被从 React 对象分离出来,目的是强调应用渲染实际上属于单独的概念。 接下来,我们需要关注组件的概念。组件可以用于构建用户界面,并通过任何适当的方式进行组合。在实际应用中,你需要创建自定义组件,但在起步阶段,我们先学习使用 React 提供的一个包裹层,它用于包裹 HTML DOM 元素。该包裹层可通过 `React.DOM` 对象进行调用。 最后,我们调用了熟悉的 `document.getElementById("app")` 方法访问 DOM 节点。函数调用通过该参数告诉 React 需要把应用渲染在页面的哪个部分。因此,这是连接你所熟知的DOM 操作到 React 新大陆的一座桥梁。 ### React.DOM.* 通过浏览器控制台获取 React.DOM 对象的完整属性列表。 注意 `React.DOM` 和 `ReactDOM` 的区别。前者是预定义好的 HTML 元素集合,而后者是在浏览器中渲染应用的一种途径。 `React.DOM.h1()` 方法的首个参数接收一个对象,用于指定该组件的任何属性,如 DOM 属性。 第二个参数定义了组件的子元素。最简单的子元素就是例子中的文本。此外,还可以传递更多的参数,进行子元素的组合与嵌套。 ```js React.DOM.h1({id: "my-heading"}, React.DOM.span(null, React.DOM.em(null, "Hell"), "o"), " world!", React.DOM.i(null, 'React'), ), ``` > 如你所见,当你开始嵌套组件时,使用上述写法会很快遇到大量的函数调用和圆括号。为了简化工作,未来我们会使用 JSX 语法。 ### 特殊 DOM 属性 `class` 和 `for` 不能直接在 JavaScript 中使用,因为它们都是 JS 中的关键字。取而代之的属性名是 `className` 和 `htmlFor`。 至于 `style` 属性,你不能像以往在 HTML 中那样使用字符串对其赋值,而需要使用 JS 对象取代。通过避免使用字符串的方式,可以减少跨站脚本攻击的威胁,因此这是一个广受欢迎的变化。 ```js React.DOM.h1( { className: "pretty", htmlFor: "me", style: { background: "black", color: "white", fontFamily: "Verdana", } }, "Hello world!" ) ``` ### 下一步:自定义组件 至此,你已经完成了 Hello World 应用的骨架。现在你知道如何: * 安装、设置并使用 React 库 (仅仅需要引入两个 `