【React】第二部分 面向组件编程

导读:本篇文章讲解 【React】第二部分 面向组件编程,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

【React】第二部分 面向组件编程



2. 面向组件编程

2.1 下载React开发者工具

下载链接

2.2 函数式组件

需要注意:

  1. 组件名必须首字母大写

  2. 虚拟DOM元素只能有一个根元素

  3. 虚拟DOM元素必须有结束标签

  4. ReactDOM.render() 渲染函数式组件,第一个参数是标签必须是首字母大写并且自闭合

  5. 函数式中的this为undefined

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数式组件</title>
</head>
<body>
        <div class="box"></div>
     <!-- 下面需要按顺序进行引入 -->
        <!-- 引入React核心库 -->
        <script src="./react.development.js" type="text/javascript"></script>
        <!-- 引入react-dom, 用来支持react去操作dom -->
        <script src="./react-dom.development.js" type="text/javascript"></script>
        <!-- 引入babel, 用来将jsx转化为js -->
        <script src="./babel.min.js" type="text/javascript"></script>
        <!-- 这里需要注意将type写成 text/babel-->
        <script type="text/babel" >
            // 创建一个函数式组件
            // 之前jsx规则说过,标签以大写字母开头react就会去渲染对应的组件
            function Demo(){
                // 此处的this为undefined,因为这里使用babel进行翻译,模式为严格模式
                // 在严格模式下,禁止自定义函数中的this指向window
                console.log(this); 
                return <h1>我是函数式组件(适用于简单组件)</h1>
            }

            // 渲染函数式组件
            // 在这里需要写标签,标签必须是首字母大写并且自闭合
            ReactDOM.render(<Demo/>,document.querySelector('.box'))
            // 执行上述代码,React解析组件标签,找到对应的组件,发现是一个函数定义
            // 随后调用函数将返回的虚拟DOM转为真实DOM,渲染到页面上
        </script>
</body>
</html>

2.3 类式组件

需要注意:

  1. 创建一个类式组件必须要继承React.Component这个类

  2. 必须要有render函数,并且需要有返回值

  3. 组件名必须首字母大写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>类式组件</title>
</head>
<body>
    <div class="box"></div>
     <!-- 下面需要按顺序进行引入 -->
        <!-- 引入React核心库 -->
        <script src="./react.development.js" type="text/javascript"></script>
        <!-- 引入react-dom, 用来支持react去操作dom -->
        <script src="./react-dom.development.js" type="text/javascript"></script>
        <!-- 引入babel, 用来将jsx转化为js -->
        <script src="./babel.min.js" type="text/javascript"></script>
        <!-- 这里需要注意将type写成 text/babel-->
        <script type="text/babel" >
            // 创建一个类式组件
            class Demo extends React.Component{
                render(){
                  	// 此处的this指向的是该类的实例对象
                    console.log(this);
                    return (
                        <h1>我是类式组件(适用于复杂组件)</h1>
                    )
                }
            }

            ReactDOM.render(<Demo/>,document.querySelector('.box'))
            /* 
                执行上述代码,React解析组件标签,找到对应的组件,发现是一个类定义
                随后new一个该类的实例,并且通过该类去调用原型对象上的render函数,
                将虚拟DOM转为真实DOM渲染到页面上
            */
        </script>
</body>
</html>

总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82871.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!