react中什么必须大写

react中组件名称的首字母必须要用大写。原因:React中使用JSX语法,但浏览器无法识别JSX语法,需通过babel对JSX语法进行转义;而如果组件的首字母为小写时,其会被认定为原生DOM标签,创建一个不存在的标签是会报错的。

react中什么必须大写

本教程操作环境:windows7系统、react16版,该方法适用于所有品牌电脑。

react组件名称的首字母一定要用大写

错误的写法: 组件首字母没有大写

function clock(props){   return (    

现在的时间是{props.date.toDateString()}

) }

登录后复制登录后复制

错误的写法会导致页面无法显示内容且报错,但又可以通过f12查看到标签以一种比较奇怪的方式存在,

在这里插入图片描述

正确的写法:

function clock(props){   return (    

现在的时间是{props.date.toDateString()}

) }

登录后复制登录后复制

那究竟是为什么呢?

JSX语法 向 真实DOM的转换

我们在 React 中都是写的 JSX语法,从 JSX语法 到页面上的 真实DOM大概需要经历以下几个阶段:JSX语法 —> 虚拟DOM(JS对象) —> 真实DOM。

因为浏览器是无法识别JSX语法的,因此我们需要通过 babel 对JSX语法进行转义,然后才能生成虚拟DOM对象,而原因就是在这里。我们可以看一下babel是如何转义JSX语法的:

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

babel在进行转义JSX语法时,是调用了 React.createElement() 这个方法,这个方法需要接收三个参数:type, config, children。第一个参数声明了这个元素的类型

对比上面两张图,图一中,我在创建自定义组件时没有首字母大写。 而 babel 在转义时把它当成了一个字符串 传递进去了;图二中,我把首字母大写了,babel 在转义时传递了一个变量进去。

问题就在这里,如果传递的是一个字符串,那么在创建虚拟DOM对象时,React会认为这是一个简单的HTML标签,但是这显然不是一个简单的HTML标签,因此去创建一个不存在的标签肯定是会报错的。

如果首字母大写,那么就会当成一个变量传递进去,这个时候React会知道这是一个自定义组件,因此他就不会报错了。

所以:

同理,上述错误的写法因为是小写,所以babel就把clock当作是标签生成了,而html中又没有这个元素,所以导致以一种比较奇怪的方式存在

在这里插入图片描述

更多编程相关知识,请访问:编程教学!!

以上就是react中什么必须大写的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2722287.html

(0)
上一篇 2025年3月7日 22:53:12
下一篇 2025年3月7日 22:53:22

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react中swiper插件如何使用?

    方法:1、使用“npm i swiper -S”命令安装swiper包;2、使用import语句引入swiper的css和js文件;3、在render中编写swiper组件的结构,并在react的挂载生命周期函数内创建Swiper对象即可。…

    2025年3月7日
    200
  • React Desktop是什么意思?

    React Desktop是一个适用于macOS Sierra和Windows10的React UI组件,是一个基于React的JS库,旨在将原生桌面体验带入网络,包含许多macOS Sierra和Windows10组件。 React De…

    2025年3月7日
    200
  • 怎么查看react源码

    查看react源码的方法:1、进入react官网;2、下载packages文件到本地;3、打开index.js文件即可,该文件就是react源码的入口文件。我们还可以通过babel将react源码进行转换。 本教程操作环境:windows1…

    2025年3月7日
    200
  • react怎么渲染html标签

    react渲染html标签的方法:可以使用dangerousSetInnerHTML属性来进行渲染,如【】。 本教程操作环境:windows10系统、react16版,该方法适用于所有品牌电脑。 (学习视频分享:react视频教程) 方法介…

    2025年3月7日
    200
  • react中ref怎么用

    react中ref的使用方法:1、通过回调函数形式进行使用,代码如“export default class UserAdd extends Component{…}”;2、通过string形式进行使用,代码如“export&#…

    2025年3月7日
    200
  • react怎么修改端口号?

    react修改端口号的方法:1、依次打开“node_modules”- “react-scripts”-“scripts”文件夹,找到并打开start.js文件;2、在start.js文件中查找并修改“DEFAULT_PORT”项的值即可。…

    2025年3月7日 编程技术
    200
  • react中如何引用json

    react中引用json的方法:1、直接import引入,使用【create-react-app】来构建项目;2、把json文件改成js文件,把原本json中的数据赋值给变量data。 该方法适用于所有品牌电脑 react中引用json的方…

    2025年3月7日
    200
  • react中怎么安装sass

    react中安装sass的方法:首先安装【sass-loader】和n【ode-sass】依赖;然后打开react的webpack配置,并进行相关修改即可。 该方法适用于所有品牌电脑 react中安装sass的方法:  一、安装sass-l…

    2025年3月7日
    200
  • react怎么循环列表

    react循环列表的方法:1、map循环,代码为【let MyDom =arr.map((item,index)=>】;2、for循环,代码为【for(var i=0;i 该方法适用于所有品牌电脑 react循环列表的方法: 1.ma…

    2025年3月7日
    200
  • weex和react native区别是什么

    weex和react native区别:1、设计角度上react native与很多oop语言类似,weex则更像web开发的html;2、weex能够编译出web端的代码,而react native不能。 该方法适用于所有品牌电脑 wee…

    2025年3月7日
    200

发表回复

登录后才能评论