React技术栈-组件的基本定义和使用

              React技术栈-组件的基本定义和使用

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.模块与组件的理解

1>.什么是模块

  理解:
    向外提供特定功能的js程序, 一般就是一个js文件.
  为什么:
    js代码更多更复杂.
  作用:
    复用js, 简化js的编写, 提高js运行效率.

2>.什么是组件

  理解: 
    用来实现特定(局部)功能效果的代码集合(html/css/js)   为什么:
    一个界面的功能更复杂   作用:
    复用编码, 简化项目编码, 提高运行效率

3>.什么是模块化

  当应用的js都以模块来编写的, 这个应用就是一个模块化的应用

4>.组件化

  当应用是以多组件的方式实现, 这个应用就是一个组件化的应用

二.react组件的基本定义和使用案例实战

 1>.HTML源代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>react组件的基本定义和使用</title>
    </head>
    <body>
        <div id="box1"></div>
        <div id="box2"></div>
    </body>

    <script type="text/javascript" src="../js/react.development.js"></script>
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <script type="text/javascript" src="../js/babel.min.js"></script>
    
    <script type="text/babel">
        /**
         *    1>.定义组件时需要注意的事项:
         *        组件名称首字母大写;
         *        虚拟DOM元素只能有一个根元素;
         *        虚拟DOM元素必须有结束标签;
         */
        
        //定义组件方式一:工厂函数组件(简单组件,即没有涉及到状态变化的组件) 
        function MyComponent() {
            return <h1>工厂函数组件(简单组件)</h1>
        }
        
        //定义组件方式二:ES6类组件(复杂组件,一旦涉及到状态变化就必须使用类组件,因为函数组件不能保存状态。函数调用完成后就得弹栈,这意味函数生命周期结束啦,但理论上来说函数的效率要高,因为使用类得进行实例化) 
        class MyComponent2 extends React.Component {
            render() {
                return <h3>ES6类组件(复杂组件)</h3>
            }
        }
        
        /**
         *    2>.渲染组件标签,render()渲染组件标签的基本流程如下:
         *        React内部会创建组件实例对象;
         *        得到包含的虚拟DOM并解析位真实DOM;
         *        插入到指定的页面元素内部;
         */
        ReactDOM.render(<MyComponent />,document.getElementById("box1"));
        ReactDOM.render(<MyComponent2 />,document.getElementById("box2"));
    </script>
</html>

2>.浏览器打开以上代码渲染结果

React技术栈-组件的基本定义和使用