zoukankan      html  css  js  c++  java
  • 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>.浏览器打开以上代码渲染结果

  • 相关阅读:
    kettle入门(四) 之kettle取昨天时间&设置任意时间变量案例
    用法
    Win10任务计划调度执行kettle作业
    Kettle 合并记录和Merge Join组件实现数据增量迁移(数据同步比插入更新快)
    鼠标右键新建没有excel
    python的to_sql
    leetcode1105 Filling Bookcase Shelves
    leetcode96 Unique Binary Search Trees
    leetcode111 Minimum Depth of Binary Tree
    leetcode128 Longest Consecutive Sequence
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/12088489.html
Copyright © 2011-2022 走看看