react动态渲染列表与函数式组件

1.如何使用jsx语法动态渲染列表呢,下边我用一个例子来切实总结一下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jsx练习动态渲染列表</title>
</head>
<body>
     <!-- 引入react 核心库 -->
     <script type="text/javascript" src="../js/react.development.js"></script>
     <!-- 引入react-dom库 ,用于支持react操作Dom -->
     <script type="text/javascript" src="../js/react-dom.development.js"></script>
 
     <!-- 引入babel 解析jsx语法的库,用于将jsx转换为js -->
     <script type="text/javascript" src="../js/babel.min.js"></script>

    <!-- 准备一个容器用于渲染接收虚拟dom -->
     <div id="test"></div>

    <script type="text/babel">
        // 一定注意区分:【js语句】和【js表达式】
        // 表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方
        // 下边这些都是表达式
        // (1)a
        // (2)a+b
        // (3)demo(1)
        // (4)arr.map()
        //  (5)function(){}
        // 语句(代码)
        // 下边这些都是语句(代码)控制代码走向
        // (1)if(){}
        // (2)for(){}
        // (3)while(){}
        // (4)switch(){}
      




        const myData = [
            {id:1,name:'张三',age:18},
            {id:2,name:'李四',age:19},
            {id:3,name:'王五',age:20},
            {id:4,name:'赵六',age:21},
            {id:5,name:'孙七',age:22},
        ]
        // 创建虚拟dom
        const VDOM = (
            <div>
                <h1>前端jsx框架</h1>
                <ul>
                    {
                        myData.map((item,index) =>{
                            return <li key={index}>{item.id}{item.name}{item.age}</li>
                            
                        })
                    }
                </ul>
            </div>
        )

        // 渲染虚拟dom到页面
        ReactDOM.render(VDOM,document.getElementById('test'))

    </script>
</body>
</html>

2.函数式组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数式组件</title>
</head>
<body>
     <!-- 引入react 核心库 -->
     <script type="text/javascript" src="../js/react.development.js"></script>
     <!-- 引入react-dom库 ,用于支持react操作Dom -->
     <script type="text/javascript" src="../js/react-dom.development.js"></script>
 
     <!-- 引入babel 解析jsx语法的库,用于将jsx转换为js -->
     <script type="text/javascript" src="../js/babel.min.js"></script>

    <!-- 准备一个容器用于渲染接收虚拟dom -->
     <div id="test"></div>

    <script type="text/babel">
        // 1.创建函数式组件
        function Hello_react(){
            console.log(this);//此处this是undefinded,因为babel编译后开启了严格模式
            return(
                <div>
                    <h2>你好我是函数式组件</h2>
                </div>
            )
        }
      

        ReactDOM.render(<Hello_react/>,document.getElementById('test'))


      

    </script>
</body>
</html>

通过上述例子总结

        1.函数式组件,其实就是一个函数,返回值就是虚拟dom
        2.函数名就是组件名,首字母必须大写
        3.函数名必须和文件名一致
        4.函数式组件没有this,但是可以通过props获取父组件向子组件传递的属性
        5.函数式组件没有状态,但是可以通过props向子组件传递状态
        6.函数式组件没有生命周期,但是可以通过props向子组件传递生命周期


        ReactDOM.render(<Hello_react/>,document.getElementById('test'))之后发生了什么?
        1.React解析组件标签,找到了ello_react组件
        2.发现组件是使用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DOM,随后就是看到的页面


       

相关推荐

  1. react动态渲染列表函数组件

    2024-07-10 00:14:02       21 阅读
  2. react函数组件和类组件

    2024-07-10 00:14:02       57 阅读
  3. React 函数组件知识点】

    2024-07-10 00:14:02       32 阅读
  4. React函数组件(二)

    2024-07-10 00:14:02       23 阅读
  5. 我们一起聊聊React列表渲染Key

    2024-07-10 00:14:02       55 阅读
  6. react 18 Hooks扩展函数组件的状态管理

    2024-07-10 00:14:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 00:14:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 00:14:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 00:14:02       58 阅读
  4. Python语言-面向对象

    2024-07-10 00:14:02       69 阅读

热门阅读

  1. 垃圾回收器详解

    2024-07-10 00:14:02       18 阅读
  2. homebrew常用命令

    2024-07-10 00:14:02       21 阅读
  3. JVM详解

    JVM详解

    2024-07-10 00:14:02      19 阅读
  4. 学习.NET 8 MiniApis入门

    2024-07-10 00:14:02       17 阅读
  5. Windows使用 Gitee+PicGo 搭建Markdown图床

    2024-07-10 00:14:02       21 阅读
  6. Codeforces Round 925 (Div. 3) D-F

    2024-07-10 00:14:02       25 阅读
  7. 2024华为OD机试真题-找数字-(C++/Python)-C卷D卷-200分

    2024-07-10 00:14:02       21 阅读
  8. 深入理解基本数据结构:数组详解

    2024-07-10 00:14:02       26 阅读
  9. py每日spider案例之magnet篇

    2024-07-10 00:14:02       21 阅读
  10. 面向对象编程在Perl中的实现:解锁Perl的OOP潜力

    2024-07-10 00:14:02       23 阅读
  11. uniapp video视频铺满容器,不显示控件

    2024-07-10 00:14:02       23 阅读
  12. Qt学习:Qt的坐标系统

    2024-07-10 00:14:02       25 阅读