React 入门笔记

1. 自定义组件—在html中使用react

 1<!DOCTYPE html>
 2<html>
 3  <head>
 4    <title>Hello React</title>
 5    <meta charset="utf-8"> 
 6  </head>
 7  <body>
 8    <div id="app">
 9      <!--应用渲染位置 -->
10    </div>
11    <script src="react/build/react.js"></script>
12    <script src="react/build/react-dom.js"></script>
13    <script>
14    	// 应用的JavaScript代码
15      ReactDOM.render(
16      	React.DOM.h1(null, "hello world"),
17        document.getElementByID("app")
18      )
19    </script>
20  </body>
21</html>

React.DOM.*的使用

 1React.DOM.h1(
 2	{
 3    id: "my-heading"  // 第一参数用于指定该组件的DOM 属性
 4  },
 5  "hello world"       // 第二个参数定义该组件的子元素
 6),
 7  
 8// 可以有多个子元素
 9Reat.DOM.h1(
10	{
11    id: "my-heading"
12  },
13  React.DOM.span(null, "hello"),
14  "world"
15),
16  
17// 子元素可以嵌套
18 Reat.DOM.h1(
19	{
20    id: "my-heading"
21  },
22  React.DOM.span(null, 
23                 React.DOM.em(null, "hell"),
24                 "o"),
25  "world!"
26), 
27  
28// 如果使用JSX语法 可以在JavaScript中插入 XML
29 React.DOM.render(
30	<h1 id="my-heading">
31  	<span><em>Hello</em>0</span> world!
32  </h1>,
33  document.getElementById("app")
34)

特殊的DOM属性

classfor 不能直接在JavaScript中使用。要用classNamehtmlFor

 1// 反例  属性不会生效
 2React.DOM.h1(
 3	{
 4    class: "pretty",
 5    for: "me",
 6  },
 7  "hello world "
 8);
 9// 正例 属性生效
10React.DOM.h1(
11	{
12    className: "pretty",
13    htmlForor: "me",
14  },
15  "hello world "
16);

style不能使用字符串赋值,需要使用JavaScript对象,

 1// 反例 属性不会生效
 2React.DOM.h1{
 3  {
 4    style: " background: balck; color: whrite; font-family: Verdana",
 5  },
 6    "hello world!"
 7}
 8// 正例 属性生效
 9React.DOM.h1{
10  {
11    style: {
12      background: "balck",
13      color: "whrite",
14      fontFamily: "Verdana",
15    },
16  },
17    "hello world!"
18}

Tips:

  • React.js 就是一个开源的JavaScript库, 所以和JavaScript一样使用, 可以在html 页面中 通过<script src=""></script>引入React库
  • 在选定的DOM节点中渲染一个React组件,ReactDOM.render(reactWhat,domWhere)

组件的生命周期

 1class Hello extends React.Component {
 2  render() {
 3    return <div>Hello {this.props.name}</div>;
 4  }
 5}
 6
 7ReactDOM.render(
 8  <Hello name="World" />,
 9  document.getElementById('container')
10);

自定义组件

ReactDOM.render