react学习笔记(一) jsx语法

React(一):初识React、类组件、jsx的基础语法 1、React是什么?用于构建用户界面的 JavaScript 库3、React的特点:(1)声明式编程:声明式编程是目前整个大前端开发的模式:Vue、React、Flutter、SwiftUI;(2)组件化开发(3)多平台适配1、定义类组件,继承React.Component,并继承父类的属性-- 准备好一个容器 -->//1.定义类组件super();</script>2、添加一个state属性,用来存储数据,名字必须叫state-- 准备好一个容器 -->//1.定义类组件。 阅读详情

jsx是我们在react中编写组件的一种语法,实际上jsx只是JavaScript的一种语法糖
jsx让我们能更为方便地在JavaScript中书写node节点,通过使用html的格式,让我们更为直观地看到节点的结构

jsx的几种简单用法

1.直接创建一个node节点
const element = <h1>Hellow word!</h1>;

这里将<h1>Hellow word!</h1>赋值给element,实际上是等同于将一个h1标签/节点赋值给element,而这个element可以直接放在render函数的return中

  const element=<h1>Hellow World</h1>
  ReactDOM.render(
    element,
    document.getElementById('root')
  );

页面结果:在这里插入图片描述
如果放入的是一个数组,那么会将数组展开显示

var arr=['hellow','world'];
ReactDOM.render(
   <div>{arr}</div>,
   document.getElementById('root')
 );

结果如图:
在这里插入图片描述

2.在属性中使用表达式
class MyComponent extends React.Component {
  render(){
      return <div>{this.props.val}</div>;
  }
}
ReactDOM.render(
  <MyComponent val={1+2} />,
  document.getElementById('root')
);

在jsx中,可以在属性中通过花括号使用表达式,如上面的例子,在子组件MyComponent中添加val属性,然后计算1+2后才把结果赋值给该属性
此外,也可通过使用扩展运算符来将对象的属性赋值给标签

class MyComponent extends React.Component {
    render(){
        return <div>{this.props.index}:{this.props.val}</div>;
    }
}
const obj={
    index:0,
    val:1
}
ReactDOM.render(
    <MyComponent {...obj} />,
    document.getElementById('root')
);

这里通过将obj对象的两个属性index,val赋值给子组件MyComponent,在子组件中通过this.props来调用对应的值
结果如图:
在这里插入图片描述
tip:如果在子组件中属性没有赋值,那么默认为为true
如下代码,两行代码的结果是相同的

<Mycomponent autoShow></Mycomponent>
<Mycomponent autoShow={true}></Mycomponent>
3.将表达式做为子元素
const element = <h1>Hello World</h1>
ReactDOM.render(
    <div>{element}</div>,
    document.getElementById('root')
);

这里将整个h1标签赋值给element,然后将整个element放到render出的div中
结果如图:
在这里插入图片描述
在子元素中,布尔类型,undefined,null会被忽略,无法渲染出内容
下面的jsx表达式都相等

<div />
<div></div>
<div>{true}</div>
<div>{false}</div>
<div>{null}</div>
<div>{undefined></div>

jsx的优点

  1. 声明节点的时候更为直观
    相对于我们使用createElement来创建节点,使用jsx显得更为直观,看看下面两段代码
const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);

显然前者更为直观

  1. 代码动态创建界面的灵活性
    通过使用jsx语法,我们可以将JavaScript插入到html标签中,可以使页面动态变化,增强了灵活性

  2. 无须学习新的模板语言
    前面也说了,jsx实际上就是JavaScript的语法糖,里面表示DOM节点的也是html的标签,所以使用jsx我们无序再去学习新的模板语法,上手很快

jsx的约定

  1. React认为小写的标签是原生的元素
    诸如div,span这些标签,在React中被认为是原生的元素,即使我们自定义了标签,只要是小写的,就都会被认为是原生的元素

  2. 大写字母开头的被认为是组件
    对于大写字母开头诸如MyComponent这些标签,都会被React认为是组件,会被做为组件处理
    结合上面两点,如果我们要写一个自定义组件,就要注意命名,如果为一个组件命名的时候开头是小写字母,那么就无法正常调用该组件
    如下代码:

import React from 'react';

// 错误!组件应该以大写字母开头:
function hello(props) {
  // 正确!这种 <div> 的使用是合法的,因为 div 是一个有效的 HTML 标签
  return <div>Hello {props.toWhat}</div>;
}

function HelloWorld() {
  // 错误!React 会认为 <hello /> 是一个 HTML 标签,因为它没有以大写字母开头:
  return <hello toWhat="World" />;
}

上面的代码出自React的文档

  1. jsx语法可以使用属性语法
    属性语法诸如<menu.li />可以取出对象中的属性值做为标签名,举例如下
class MyComponent extends React.Component {
    render(){
        return <div>MyComponent</div>;
    }
}
const menu={
    li:MyComponent
}
ReactDOM.render(
    <div><menu.li/></div>,
    document.getElementById('root')
);

结果如图:
在这里插入图片描述

  1. 当标签内无内容时,可以使用/>来闭合标签
    如下代码
ReactDOM.render(
    <MyComponent {...obj} />,
    document.getElementById('root')
);

因为MyComponent里面没有任何内容,所以直接使用/>闭合,就像XML语法一样

jsx防止注入攻击

React DOM在渲染输入内容之前,会默认对其中的内容进行转义,在渲染前就会将所有的内容转为字符串,这样可以有效地防止 XSS(cross-site-scripting, 跨站脚本)攻击。

react-JSX语法 react-JSX语法初学 阅读详情

相关推荐

React 简介 及 JSX语法

文章目录React 简介React 概述及特点React 渲染机制JSX 语法 React 简介 React 概述及特点 是一个用于构建用户界面,将数据渲染为HTML视图的开源 JavaScript库 中文官网:React官方中文文档 是 Facebook 开发并于2013年发布并宣布开源 基于 JSX 的语法,JSX是React的核心组成部分,它使用xml标记的方式去直接声明界面,和html、js混写 React核心是 组件,组件的设计提高了代码的复用率,降低了测试的难度和代码复杂度。组件将数据和逻

YuLong的博客 1091

ReactElement、ReactNode以及JSX.Element

interface PreProcessorProps { error?: boolean | BooleanFunction loading?: boolean | BooleanFunction children: React.ReactNode | RenderFunction } } const PreProcessor: React.FC = ({ children }) => { // … return children } 在使用ts写React时,尴尬的遇到了这个错误 不能将类型“({

weixin_46449470的博客 8450

5分钟搞定!用FunASR在本地快速部署达摩院Paraformer语音识别模型(附常见问题解决)

本文详细介绍了如何在本地快速部署阿里达摩院开源的Paraformer语音识别模型。通过FunASR工具包,用户可在5分钟内完成环境配置、模型下载与基础识别,并掌握批量处理、性能调优及构建API服务等进阶技巧。文章重点解析了Paraformer的非自回归架构带来的速度优势,并提供了音频格式转换、依赖冲突、显存不足等常见问题的实战解决方案,助力开发者实现高效、离线的语音转写应用。

p1q2r的博客 705

ReactNode type

type ReactText = string | number; type ReactChild = ReactElement | ReactText; interface ReactNodeArray extends Array<ReactNode> {} type ReactFragment = {} | ReactNodeArray; type ReactNode = ReactChild | ReactFragment | ReactPortal | boolean | null.

weixin_38249353的博客 1537

Windows游戏玩家必看:用Process Lasso优化CPU优先级和核心绑定,告别卡顿

本文为Windows游戏玩家详细介绍了如何使用Process Lasso优化系统性能。通过设置CPU优先级和核心绑定,可以智能管理进程资源,确保游戏获得最高调度权限,有效减少因后台程序干扰或Windows调度机制不完善导致的卡顿与帧数波动,从而提升游戏流畅度与稳定性。

weixin_29299807的博客 2218

矩阵LED和矩阵按键

先说矩阵LED,如图: 下面以行几、列几的表达方法说明 三极管可以当做开关使用 由图可知,如果想让一个LED亮,那么它对应的行和列的三极管都要导通。如果这个矩阵每次只亮一个LED,那么正常写程序没问题。 如果我们想让LED1和LED6亮,其他灯不亮,则需要开启行1、行2、列1、列2,随之带来的问题就是LED2和LED5也会跟着亮起来。 解决方法类似于扫描,因为单片机运行速度很快,可以在很短的时间内开关数次而肉眼看不到。所以我们可以每次只亮一列(排)灯,亮单位时间后关掉同时开启另外一列(排),如此四次一循环

qq_46615634的博客 5793

(React启蒙)认识React nodes

本章是翻译的React启蒙系列的第四章,主要将讲述如何使用纯JavaScript语句创建React节点,本章内容依旧非常基础,通过阅读本章内容你将了解React nodes的定义,React.createElement()所需的各参数的实际意义以及部分React事件相关知识。 什么是React nodes? 定义: React node是...

weixin_33922670的博客 637

2022李宏毅作业hw1—新冠阳性人员数量预测。

从非常基础的内容开始,主要是我的水平也很基础。

YI_SHU_JIA的博客 1万+

《二》React 中的 JSX 语法

JSX 全称是 JavaScriptXML,是一种类似于 XML 的 JavaScript 扩展语法。它允许 HTML 与 JavaScript 的混写,HTML 可以直接写在 JavaScript 之中。遇到 HTML 标签(以开头),就用 HTML 规则解析:若小写字母开头,则将标签转为 HTML 中的同名元素,若 HTML 中无该标签对应的同名元素,则报错;若大写字母开头, React 就去渲染对应的组件,若组件没有定义,则报错。遇到代码块(以开头),就用 JavaScript 规则解析。

花铛 870

【气候极端指数】MATLAB计算各种气候极端指数

简介各类气候极端指数,及其MATLAB计算代码

WW、forever的博客 4917

环境配置与基础教程:当前大厂主流套路:使用 MLflow 全链路管理 YOLO 实验参数、指标与模型版本

YOLO26与MLflow结合实现高效实验管理 YOLO26通过移除DFL模块和实现无NMS端到端推理,在CPU推理速度上提升43%,同时简化了模型导出流程。MLflow 3.10/3.11版本新增多工作区支持、成本追踪和安全序列化等功能,为机器学习实验提供全生命周期管理。两者结合可解决传统"截图+Excel"式实验管理的痛点,实现参数追踪、指标对比和模型版本控制的自动化。 关键优势: YOLO26架构优化带来显著性能提升 MLflow提供实验到生产的全链路管理 原生集成简化了计算机视觉

ZXSXJ的博客 191

React

一、React简介: 1.React概述: React 是一个用于构建用户界面的 JAVASCRIPT 库。 React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。 React 拥有较高的性能,代码逻辑非常简...

林清溯 487

【学习系列】SAP RAP 4:通过注解来完成一些常规需求

本文介绍了RAP应用中常用注解的实现方式,包括搜索帮助、文本描述绑定、联动搜索、字段控制等功能。通过@Consumption、@UI等注解可以实现搜索帮助定义、多字段联动、必输校验、默认排序和默认值设置。管理字段可通过@Semantics注解自动记录创建/修改信息,长文本使用@UI.multiLineText实现多行显示。这些注解可优化界面交互和数据管理,为后续行为定义功能开发奠定基础。文章结构清晰,针对不同需求提供了具体的实现方案和代码示例。

DeveloperMrMeng的博客 698

React学习笔记一 JSX语法组件

React学习笔记一 JSX语法组件

qq_34185638的博客 1390

【Unity 实用工具篇】✨| 受击插件Feel 详细教程,开发游戏时更好的操控 游戏打击感

在一个游戏中,游戏手感对于游戏的整体游玩体验是非常重要的,而游戏手感中有一个很重要的点:打击感 那本篇文章就来讲一下打击感中的受击反馈部分。 在游戏中经常会用到攻击敌人,敌人扣血,执行某些受击功能的执行,尤其是对于有战斗场景的游戏来说,这就是标准的受击反馈。 所以引出本篇文章的主角:受击插件 Feel 的使用,2D和3D游戏都可以使用。

努力前行,总会成为自己心中的那道光 3万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

React学习笔记一——JSX语法规则

之前看过两遍关于react基础的视频,每次看完感觉非常懂,但是过一段就会忘记,所以这次再学习自己会做一些笔记记录下来,方便日后的学习,如果对你有帮助,再好不过; 通过以下代码来总结以下JSX的语法规则 定义虚拟DOM,不要写引号 标签中混入JS要使用花括号{} 样式的类名指定不要用class,要用className 内联样式,要用style={{key:value}}的形式去写 虚拟DOM必须只有一个根标签 标签必须闭合 标签首字母如果为小写字母,则将标签改为html中同名标签,若没有该标签,则报错;.

前端探险家的博客 417

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

React 学习笔记 -- 从入门到精通(一):JSX 语法

JSX是React的语法扩展,允许在JavaScript中直接编写类似HTML的代码。它会被编译为React.createElement()函数调用。JSX支持在{}中嵌入JavaScript表达式,包括变量、运算、函数调用等。条件渲染可使用三元运算符、&&运算符或提前声明变量。列表渲染需使用.map()方法,并为每个元素添加唯一的key属性。JSX与HTML存在重要差异,如className替代class、事件名采用驼峰命名、标签必须闭合等。内联样式需写成对象形式,属性名使用驼峰命名。

shanhaih的博客 487

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

React学习笔记一——JSX语法规则,最全指南

引入一些react核心库和babel。

499

【React】深入理解 JSX语法

JSX (JavaScript XML) 是 React 框架中的一种特殊语法扩展,它允许我们在 JavaScript 代码中编写类似 HTML 的代码。JSX 为我们提供了一种直观的方式来描述用户界面的结构,同时保持了 JavaScript 的全部功能。// JSX// 普通 HTMLJSX 是 React 生态系统中的一个重要创新,它成功地将声明式的 UI 描述与 JavaScript 的编程能力结合在一起。虽然它看起来像模板语言,但实际上它具备了完整的 JavaScript 功能。

鑫宝的博客 2073

React基础-JSX语法介绍

我们先来看一段代码// 定义根组件 const element = < div > Hello World < / div > // 渲染根组件 const app = ReactDOM . createRoot(document . querySelector("#app")) app . render(element)这段element变量的声明右侧赋值的标签语法是什么呢?它不是一段字符串(因为没有使用引号包裹);它看起来是一段HTML元素,但是我们能在js中直接将HTML元素赋值给一个变量吗?

m0_71485750的博客 8381

React(一):React简介、jsx语法

react起源于facebook公司的内部项目,是一个声明式的,高效且灵活的用于构建用户界面的js库,在2013年5月开源react特点:1、组件化开发:UI被拆分为独立的组件(如按钮、表单),每个组件可以重复使用,组件内部可以封装逻辑状态,避免代码耦合性。2、声明式编程:开发者只需要关注结果而非过程,react自动处理dom更新,比命令式编程直接操作dom代码更简洁,更方便,可读性更强,命令式编程使用的是原生js3、单向数据流:数据从父组件通过props向下传递到子组件,保证数据流动的可预测性。

2301_76473577的博客 1446

JSX 语法详解

JSX即JavaScript XML。一种在React组件内部构建标签的类XML语法。JSX为react.js开发的一套语法糖,也是react.js的使用基础。React在不使用JSX的情况下一样可以工作,然而使用JSX可以提高组件的可读性,因此推荐使用JSX

web00_11的博客 1万+

【前端】深入了解React JSX语法及实例应用

</div>})

double222222的博客 1674

【React基础】– JSX语法

​JSX是一种JavaScript的语法扩展(eXtension),也在很多地方称之为JavaScript XML,因为看起就是一段XML语法

m0_68324632的博客 2101

ReactJS 101代码规范终极指南:Airbnb React/JSX风格指南的实际应用

ReactJS 101作为React开发者的入门指南,不仅教授React基础知识,还特别强调了代码规范的重要性。在React开发中,遵循统一的代码规范是提升团队协作效率和代码质量的关键。本文将深入探讨如何在ReactJS 101项目中实际应用Airbnb React/JSX风格指南,帮助开发者编写更专业、更易维护的React代码。 ## 📋 为什么需要React代码规范? 在团队协作开发中,

gitblog_00879的博客 1786
上一篇: LeetCode 15 三数之和 JavaScript实现
下一篇: react学习笔记(四) 组件常用的生命周期方法
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值