当前位置: 首页 > 编程笔记 >

在React.js中深入了解JSX

潘文乐
2023-03-14
本文向大家介绍在React.js中深入了解JSX,包括了在React.js中深入了解JSX的使用技巧和注意事项,需要的朋友参考一下

最后,JSX只需使用createElement方法创建一个React元素。

示例

<FormButton color="green" buttonSize={10}> Submit </FormButton>

将转换为-

React.createElement(
   FormButton,
   {color: 'green', buttonSize: 10},
   'Submit’
)

也可以添加自闭合标签。

大写自定义React元素

自定义的react元素必须以首字母大写命名,以便React能够区分html元素和react元素。

随着Jsx转换为React.createElement,React库必须在范围内。为此,如果需要使用jsx,我们必须导入React。

使用点运算符访问内部属性

元素的内部属性可以使用点运算符访问。

示例

<FormComponent.TextArea size=”50”/>

运行时选择Jsx元素的类型

常规表达式不能用于React元素的类型。首先,我们必须将其分配给大写变量,然后才能使用该变量。

示例

import React from 'react';
import { Cricket, Football } from './sportsTypes';
const components = {
   cricket: Cricket,
   football: Football
};
function Story(props) {
   //下面的表达式是错误的,不能以这种方式使用。
   return <components[props.cricket] player={props.name} />;
}

为了使其工作,我们将其分配给大写字母-

import React from 'react';
import { Cricket, Football } from './sportsTypes';
const components = {
   cricket: Cricket,
   football: Football
};
function Story(props) {
   //正确!JSX类型可以是大写的变量。
   const Sport = components[props.cricket];
   return <Sport player={props.name} />;
}

jsx中的道具用法

道具可以是jsx表达式

示例

<Player score={4+6+4} />

得分道具将计算为14

条件语句(如if,for)不能直接在jsx代码中使用,但可以单独使用,其结果变量可以在jsx中使用。

道具可以是字符串文字-

<Player name={‘Steve’}/>

要么

<Player name=”Steve”/>

如果未提供,则props值将默认为true。这只是为了与html的默认行为兼容。

示例

<Player isPlaying />

等于

<Player isPlaying={true} />

散布算子可以用来传递道具-

<Player {…props} />

jsx中的Children元素

开始标签和结束标签之间的内容是jsx子元素。

<Player> Steve </Player>

子代也可以是jsx表达式或函数。如果jsx子级属于Boolean null,undefined类型,则将忽略它们。

 类似资料:
  • logstash 已经拥有数以百计的插件,并提供了一站式的部署方式,极大的方便了新手入门。但在实际运用上,我们终究会碰上其他人还没碰到过,或者碰到过但没公布出来完整解决方案的问题。可能是某些环境适配,可能是某个环节的性能不佳,可能是某处硬编码设置不合理,等等等等。这时候,了解一些 logstash 的代码逻辑,了解 logstash 之所以做出当前选择的缘由。是有助于解决实际问题的。 此外,log

  • 问题内容: 我试图了解如何使用Golang和forks。情况如下,我在写一个依赖于library的库,这不是我的。 由于缺少我需要的一些方法,因此将其分叉到。但是,我不能只是这样做,库引用了自己,所以它坏了。 在本文中,他们提供了可能的解决方案: 现在,这充其量是hacky。从库代码中无法得知依赖项来自其他存储库。任何使用我的图书馆的人都无法使其正常运行。 由于dep有望成为正式的依赖管理器。我发

  • 在这本教程的一开始 (第 6 章, 构建脚本基础) 你已经学习了如何创建简单的任务. 然后你也学习了如何给这些任务加入额外的行为, 以及如何在任务之间建立依赖关系. 这些仅仅是用来构建简单的任务. Gradle 可以创建更为强大复杂的任务. 这些任务可以有它们自己的属性和方法. 这一点正是和 Ant targets 不一样的地方. 这些强大的任务既可以由你自己创建也可以使用 Gradle 内建好的

  • 本文向大家介绍深入了解Python在HDA中的应用,包括了深入了解Python在HDA中的应用的使用技巧和注意事项,需要的朋友参考一下 Event Handler 在HDA中,要创建Python脚本,需要先选择一个事件处理器(EventHandle),他表示你要在什么时候执行你现在所创建的脚本命令 On Created (在节点创建时,执行脚本) 如选择此项编辑Python脚本,Python将会在

  • 深入了解Bundle和Map 原文链接 : The mysterious case of the Bundle and the Map 译文出自 : 开发技术前线 www.devtf.cn 译者 : yinna317 校对者: chaossss 状态 : 翻译完成 前言 因为往Bundle对象中放入Map实际上没有表面上看起来那么容易。 这篇博客是在Eugenio @workingkills Ma

  • 本文向大家介绍深入了解MyBatis参数,包括了深入了解MyBatis参数的使用技巧和注意事项,需要的朋友参考一下 深入了解MyBatis参数 相信很多人可能都遇到过下面这些异常: "Parameter 'xxx' not found. Available parameters are [...]" "Could not get property 'xxx' from xxxClass. Caus