前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React--3: 组件和模块及函数式组件

React--3: 组件和模块及函数式组件

作者头像
用户4793865
发布2023-01-12 14:12:11
6440
发布2023-01-12 14:12:11
举报
文章被收录于专栏:前端小菜鸡yym前端小菜鸡yym

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战

1. 模块

  • 向外提供特定功能的 js 程序,一般就是一个 js 文件。
  • 为什么要拆成模块:随着业务逻辑增加,代码越来越复杂。
  • 作用:复用 js ,简化 js 的编写,提高 js 的运行效率。

模块全称:js模块,只是拆分 js

2. 组件

在这里插入图片描述
在这里插入图片描述

理解:所有实现头部功能的 html css js font img video等文件。 为什么:因为一个页面的功能很复杂。 作用:复用编码,简化项目编码,提高运行效率。

3. 模块化

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

4. 组件化

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

5. 函数式组件

我们就先写个函数然后将它渲染到界面

代码语言:javascript
复制
// 1.创建函数式组件
function demo(){
    return <h2>我是函数式组件,适用于简单的定义</h2>
}
// 渲染组件到界面
ReactDOM.render(demo, document.getElementById('root'))
在这里插入图片描述
在这里插入图片描述

界面是空白页,并且它报错说不是标签,那么我们给它改成组件标签。

代码语言:javascript
复制
// 渲染组件到界面
ReactDOM.render(<demo/>, document.getElementById('root'))

依旧报错,那么错在哪里呢?我们上个文章说到了,组件的标签首字母要大写。

在这里插入图片描述
在这里插入图片描述

将首字母改为大写

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';

// 1.创建函数式组件
function Demo(){
    return <h2>我是函数式组件,适用于简单的定义</h2>
}
ReactDOM.render(<Demo/>, document.getElementById('root'))

我们可以看出效果出来了。

在这里插入图片描述
在这里插入图片描述

思考一下,这是个函数吗?答案肯定是。那是谁调用的呢?我们自己调用了吗?没有。是 React 帮我们调用的。

我们关注一下此时组件的 this 指向问题: 我们打印一下此时的 this

代码语言:javascript
复制
function Demo(){
    console.log(this)
    return <h2>我是函数式组件,适用于简单的定义</h2>
}

此时的 this 是 undefined

在这里插入图片描述
在这里插入图片描述

那么为什么呢?因为我们整个函数经过了 babel 的转换处理。并且这个过程是严格模式,在严格模式中,禁止自定义函数中的 this 指向window。因此变成了undefined。

我们去babel官网验证一下

在这里插入图片描述
在这里插入图片描述

可以看到,确实经历了严格模式。还有我们的中文变成乱码了?其实不是乱码,只是换了一种编码格式。

这个过程经历了什么?

  • 首先,React解析组件标签,找到Demo组件。
  • 发现组件是使用函数定义的,随后调用该函数,讲返回的虚拟DOM转为真实DOM,随后呈现在页面上。

6. react dev tools

这是React浏览器扩展工具。首先,需要翻墙工具。 大家可以去下载一下 这里

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有了这个工具之后,就可以看到组件的结构了

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 模块
  • 2. 组件
  • 3. 模块化
  • 4. 组件化
  • 5. 函数式组件
  • 6. react dev tools
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档