本帖最后由 Sian 于 2017-12-22 10:37 编辑  
 
1、前面已经讲到了如何使用React进行DOM的基本操作,通过ReactDOM的render()方法来渲染Html视图; 
[HTML] 纯文本查看 复制代码    ReactDOM.render(
     <h1>Hello React</h1>,
     document.getElementById("container")
   );
// 等同于
    ReactDOM.render(
      React.createElement("h1",null,"Hello React"),
      document.getElementById("container")
    ); 
2、上面的<h1>Hello React</h1>和Html标签一模一样,但在这里不能理解成是Html标签,而是JSX语法,也可以理解成是React自带的基础组件,最终会被解释成下面的样式,被Javascript执行; 
3、这种所谓的基础组件,对应Html标签都有一个与之一模一样的组件,方便使用,除此之外还支持自定义组件丰富实际开发需要; 
4、使用React的createClass()方法创建一个组件,写法与格式以及说明在注释中注明 
[HTML] 纯文本查看 复制代码 /**
     * 创建一个组件,用于输出Hello React
     1、组件类名以大写字母开头,大驼峰命名法;
     2、在React中使用React.createClass方法创建一个组件类
     3、核心代码:每个组件都必须实现自己的render()方法,输出定义好的组件模板,返回值:null,false、组件模板
     4、注意:组件类只能包含一个顶层标签
     */
     // 代码示例
     var HelloMessage = React.createClass({
       render:function(){
         return <h1>Hello React</h1>;
       }
     });
     ReactDOM.render(
       //  模板中插入<HelloMessage />会自动生成一个实例
       <HelloMessage />,
       document.getElementById("container")
     ); 
效果链接:http://www.yusian.com/react/component/index.html 
5、组件还可以通过嵌套组成复合组件 
5.1、先创建两个组件,分别实现不同的内容 
[JavaScript] 纯文本查看 复制代码      var WebName = React.createClass({
       render:function(){
         return <h1>Sian</h1>;
       }
     });
     var WebLink = React.createClass({
       render:function(){
         return <a href="http://www.yusian.com">http://www.yusian.com</a>
       }
     }); 
5.2、再创建一个组件,该组件包含的内容为前面所创建的组件,这就叫复合组件 
[JavaScript] 纯文本查看 复制代码      var WebShow = React.createClass({
       render:function(){
         return (
           <div>
            <WebName />
            <WebLink />
           </div>
         );
       }
     }); 
5.3、再渲染时直接使用该复合组件即可得到前面两组件的效果和 
[JavaScript] 纯文本查看 复制代码      ReactDOM.render(
       <WebShow />,
       document.getElementById("container")
     ); 
5.4、效果链接:http://www.yusian.com/react/component/index1.html 
6、在浏览器空白处右击,点击“检查”查看浏览器最终解释的Html结构; 
 |