首页 > 其他分享 >基础篇——JSX

基础篇——JSX

时间:2022-10-19 11:03:21浏览次数:40  
标签:const 标签 基础 element React JSX 表达式

一、JSX

用于描述UI的JavaScript扩展语法,是UI描述和UI数据之间的桥梁。

1,语法

JSX本质上还是JavaScript。

①基本语法和XML语法相同,都是使用成对的标签构成一个树状结构的数据。

const element = {
  <div>
     <h1>Hello,world</h1>
  </div>
}

②两种标签类型:dom类型的标签(首字母必须小写)和React组件类型的标签(首字母必须大写)。React通过首字母的大小写判断渲染的组件是DOM标签还是React类型的标签。

const elementDom = <h1>Hello,world</h1>;

const elementReact = <HelloWorld />;

const element = (
  <div>
    <HelloWorld />
  </div>
)

③JavaScript表达式

在JSX中使用表达式需要将表达式用大括号{}包起来、表达式在JSX使用场景有两个:

  • 通过表达式给标签属性赋值
  • 通过表达式定义子组件

JSX中只能使用JavaScript表达式,不能使用多行JavaScript语句。(可以使用三目运算符或逻辑与(&&)代替if语句的作用)

//通过表达式给标签属性赋值
const element = <User age={1+1} />;
//通过表达式定义子组件
const element = ( 
  <ul>
    {list.map((item) => <User name={item.name} age={item.age} />)}
  </ul>
)

//错误
const element = (
  <div>
    {
      if(complete) {
        return <User />;
      } else {
        return null;
      }
    }
  </div>
)

//正确
const element = (
  <div>
    {
      complete ? <User /> : null
    }
  </div>
)
const element = (
  <div>
    complete&&<User />
  </div>
)

④标签属性

  • JSX标签是DOM标签时,对应DOM标签支持的属性JSX也支持,例如id、class、style、onclick等,部分属性名称有所改变,例如class要写成className,事件属性名称采用驼峰命名法,例如onclick要写成onClick。
  • JSX标签是React标签时,可以任意自定义标签的属性名。

⑤注释需要用大括号{}包一下

2,JSX不是必需的(但应首选JSX语法)

JSX只是React.createElement(component,props,...children)的语法糖,所有的JSX语法最终都会被转换成对这个方法的调用。

//JSX语法
const element = <div className='foo'>Hello,world</div>

//转换后
const element = React.createElement('div',{className:'foo'},'Hello,React')

 

标签:const,标签,基础,element,React,JSX,表达式
From: https://www.cnblogs.com/sxww-zyt/p/16805464.html

相关文章

  • 基础篇——组件
    二,组件1,组件有两种定义方式:class(类组件)和使用函数(函数组件)class:继承自React.Component内部必须定义render方法,返回该组件UI的React元素使用函数:接收props作为......
  • 基础组件(一)
    1.TextInput允许用户输入文本的基础组件.属性onChangeText 接受一个函数,而此函数会在文本变化时被调用。onSubmitEditing 在文本被提交后(用户按下软键盘上的提交键)调用 ......
  • 【高等数学基础进阶】微分中值定理及导数应用
    一、微分中值定理定理1(费马引理):如果函数$f(x)$在$x_{0}$处可导,且在$x_{0}$处取得极值,那么$f'(x_{0})=0$ 定理2(罗尔定理):若$f(x)$在$[a,b]$上连续$f(x)$在$(a,b)$......
  • 数据结构基础—串
    数据结构基础—串一、串类型定义1.串的定义和相关概念字符串一般简称为串,其实就是由零个或多个字符组成的有限序列。逻辑结构和线性表极为相似,只是串的数据类型为字符型......
  • AcCoders 10665:【省选基础 模拟】魔兽世界终极版 题解
    一句话,大模拟,对着题意敲就完了。干就完了,奥利给!正正好好618行~//10665ProblemG:【省选基础模拟】魔兽世界终极版#include<iostream>#include<cstdio>#include......
  • 深度学习基础课:全连接层的前向和后向传播推导(上)
    大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序线上课程资料:本节课录像回放1加QQ群,获......
  • 03#嵌入式系统基础:模拟量和开关量
    模拟量指的是实践连续、数值也连续的物理量,例如:温度、压力、流量、速度、声音等。在工程技术上,常用传感器、变换器把模拟量转换为电流、电压或电阻等电学量。开关量指的是......
  • 02#嵌入式系统基础:MCU 简介
    单片机与微控制器这两个术语的语义是基本一致的。早期英文是Single-chipMicrocomputer,之后大多数称之为Micro-controller。现在又有新的词语MicrocontrollerUnit,也就......
  • MyBatis基础使用三
    MyBatis基础使用三批量删除的基础用法Sql基础语句deletefromuserwhereidin(6,7)接口处书写语句//批量删除 voidDeleteMoreUsers(@Param("ids")String......
  • 01#嵌入式系统基础:定义、由来、分类
    嵌入式系统的定义嵌入式系统是一种计算机硬件和软件的组合,也许还有机械装置,用于实现一个特定功能。在某些特定情况下,嵌入式系统是一个大系统或产品的一部分。例如,微波炉......