前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(二)React 面向组件编程

(二)React 面向组件编程

作者头像
老怪兽
发布2023-02-22 14:31:37
1940
发布2023-02-22 14:31:37
举报
文章被收录于专栏:老怪兽的前端之旅

# 🍇一、函数式组件

函数式组件适用于【简单组件】的定义

  • 创建第一个函数式组件
代码语言:javascript
复制
 // 1. 创建函数式组件, 函数名字必须是大写,大写才能被识别成组件
 function Demo() {
    // 必须有返回值
    return <h2>我是一个函数式组件</h2>
 }

// 若小写字母开头,则将标签转换为 `html` 同名元素,如果没有找到同名的 `html` 标签,则报错
// 若大写字母开头,则 `React` 就去渲染组件,如果没有找到,就报错

//  渲染组件到页面
ReactDom.render(<Demo/>, document.getElmentById('test'))
  • 函数式的 this 是谁
代码语言:javascript
复制
 function Demo() {
    console.log(this)       // this 是 undefined
    // 必须有返回值
    return <h2>我是一个函数式组件</h2>
 }

为什么这里的 thisundefined 因为我们在这里写的是 jsx 它通过 babel 编译后会开启 js 的严格模式,在 js 严格模式中,是禁止自定义函数的 this 指向 window 的,所以这里的 thisundefined

# 🍉执行了 ReactDom.render(<Demo/>....) 后发生了什么
  1. React 解析组件标签,找到 Demo 组件
  2. 发现组件是使用函数定义的,随后调用函数,将返回的虚拟 DOM 站换为真实 DOM,随后呈现在页面中

# 🥥二、类式组件

类式组件适用于【复杂组件】的定义

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年12月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 🍇一、函数式组件
    • # 🍉执行了 ReactDom.render(<Demo/>....) 后发生了什么
    • # 🥥二、类式组件
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档