React-JSX语法

1、React和Vue的区别

(1)设计理念:react是一个声明式UI库,强调的是函数式编程,学习难度较高,vue是渐进式框架,学习难度较低

(2)模板语法:react使用的是JSX语法,逻辑和视图混合编写,vue使用的是HTML模板语法,逻辑和视图分离;

(3)数据流:vue通过v-model可以实现双向数据绑定,react是单向数据流,必须要手动调用setState或Hooks更新;(必须要将其定义为受控组件,在input框中绑定value={this.state.value},并给其绑定一个 onChange={this.handleChange}函数,监听input输入框的变化,通过handleChange(event) {

this.setState({value: event.target.value});}从而去更新state中的属性);

(4) ‌生态系统:react拥有庞大的生态系统和第三方库,适合复杂场景的开发,Vue是官方提供的全家桶,适合快速开发中小项目;

2、JSX简介

  • 遇到 < 开头的代码, 以标签的语法解析: html 同名标签转换为 html 同名元素, 其它标签需要特别解析 ;
  • 遇到以 { 开头的代码,以 JS 的语法解析: 标签中的 js 代码必须用{ }包含;
  • 对于 label 标签的 for 属性,使用 htmlFor 标签代替,标签的class属性,使用className代替;

3、样式引入

行内样式:可以使用style属性定义样式,使用{}表示js代码,内部的样式是一个json对象格式,需要再用{}括起来

<div style={{color:"red", fontSize: 30}}></div>

内联样式:React 会在指定元素数字后自动添加 px

let mystyle = {color: "blue",fontSize: 30,
}
return(<div style={mystyle}>水浒传</div>
)

4、图片引入

(1)分离引入方式

import boy from './assets/img/pic3.png'
<img alt="" src={boy} /> 

(2)通过require引入

<img alt="" src={require('./assets/img/pic4.png')} />

(3)引入线上地址

<img alt="" src="https://dss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=1807710913,34060765&fm=26&gp=0.jpg" />

5、条件渲染

(1)三目运算符:在 JSX 内部不能使用 if else 语句,但可以使用三元运算表达式来替代

let flag = true;
<div>{flag ? "show" : "hidden"}</div>
<div>{flag ? <span>立即注册</span> : ''}</div>

(2)使用&&来去掉三目运算符的否则

let flag = true;
<div>{flag && <span>条件渲染</span>}</div>

(3)复杂条件渲染

const list = [{ name: '张三', age: 18, type: 0 },{ name: '李四', age: 20, type: 1 },{ name: '王五', age: 32, type: 2 },
]function getArticleTem(type) {if (type === 0) {return <div>无图</div>} else if (type === 1) {return <div>单图</div>} else if (type === 2) {return <div>双图</div>}
}function App() {return (<div>{ list.map((item, index) => <div key={index}>{getArticleTem(item.type)}</div> )}  </div>
}

6、列表渲染

const list = [{ name: '张三', age: 18, type: 0 },{ name: '李四', age: 20, type: 1 },{ name: '王五', age: 32, type: 2 },
]function App() {return (<div>{ list.map((item, index) => <div key={index}>{ item.name }</div> )}  </div>
}

7、事件绑定

function handleClick(e) {console.log(e);
}function App() {return (<div>{ list.map((item, index) => <div key={index} onClick={handleClick}>{ item.name }</div> )}  </div>
}

        自定义传参:事件绑定的位置改为箭头函数写法,不能直接在后面加参数调用


function App() {return (<div>{ list.map((item, index) => <div key={index} onClick={() => handleClick(item)}>{ item.name }</div> )}  </div>
}

        同时传递事件对象和自定义参数:


function App() {return (<div>{ list.map((item, index) => <div key={index} onClick={(e) => handleClick(item, e)}>{ item.name }</div> )}  </div>
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/80417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ 主题与队列的协同作用解析(既然队列存储在不同的集群中,那要主题有什么用呢?)---管理命令、配置安装

学习之前呢需要会使用linux的基础命令 一.RocketMQ 主题与队列的协同作用解析 在 RocketMQ 中&#xff0c;‌主题&#xff08;Topic&#xff09;‌与‌队列&#xff08;Queue&#xff09;‌的协同设计实现了消息系统的逻辑抽象与物理存储分离。虽然队列实际存储在不同集群的 B…

三菱FX PLC频率采集

基于高速计数器&#xff0c;计算从X点输入方波个数&#xff0c;定时提取计数器值&#xff0c;换算得到频率。直接通过定时器数值判断来实现定时计数的精度不高&#xff0c;提高精度需要考虑定时中断方式。 初始化寄存器&#xff0c;通过M8235&#xff0c;M8236复位来选择C235&a…

一种专用车辆智能配电模块的设计解析:技术革新与未来展望

关键词&#xff1a;智能配电模块、STM32、CAN总线、电子开关、新能源汽车 引言&#xff1a;传统配电系统的痛点与智能化转型 传统配电系统依赖继电器和保险丝&#xff0c;存在体积大、寿命短、智能化低等缺陷&#xff08;如图1&#xff09;。而新能源汽车和无人驾驶技术对配电…

python——异常

1、定义 异常是在代码执行过程中发生的&#xff0c;它会影响到程序的正常运行。python程序不会自动来进行异常处理。python中常见异常父类&#xff1a;Exception。 2、常见异常 TypeError&#xff1a;类型错误异常。ValueError&#xff1a;值的异常。KeyError&#xff1a;键…

深入浅出Sentinel:分布式系统的流量防卫兵

引言 在当今的微服务架构和分布式系统中&#xff0c;服务间的依赖关系错综复杂&#xff0c;一个服务的故障可能会像多米诺骨牌一样引发整个系统的崩溃。如何有效地保护系统免受突发流量、不稳定依赖服务的影响&#xff0c;成为每个架构师和开发者必须面对的挑战。今天&#xf…

leetcode0106. 从中序与后序遍历序列构造二叉树-medium

1 题目&#xff1a;从中序与后序遍历序列构造二叉树 官方标定难度&#xff1a;中 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入…

【Pandas】pandas DataFrame rsub

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象&#xff08;如 DataFrame、Series 或标量&#xff09;的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…

【信息系统项目管理师】高分论文:论人力资源管理与成本管理(医院信息系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文一、规划人力资源管理二、组建项目团队三、建设项目团队四、管理项目团队论文 一个完善的医院信息系统通常由上百个子系统构成,而这些系统随着医院发展需求逐步建设的,他们来源于不同厂家,基于不同的技…

【python】如何将python程序封装为cpython的库

python程序在发布时&#xff0c;往往会打包为cpython的库&#xff0c;并且根据应用服务器的不同架构&#xff08;x86/aarch64&#xff09;&#xff0c;以及python的不同版本&#xff0c;封装的输出类型也是非常多。本文介绍不同架构指定python下的代码打包方式&#xff1a; 首…

Android 14 修改侧滑手势动画效果

涉及关键类 SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt 修改如下&#xff1a; 一&#xff0c;覆盖系统的默认手势效果 SystemUI/src/com/andro…

RHEL与CentOS:从同源到分流的开源操作系统演进

RHEL与CentOS&#xff1a;从同源到分流的开源操作系统演进 一、核心关系&#xff1a;源代码的重构与社区化 RHEL&#xff08;Red Hat Enterprise Linux&#xff09;与CentOS&#xff08;Community ENTerprise Operating System&#xff09;的关系可以概括为“同源异构”。RHE…

EFISH-SBC-RK3588 —— 厘米级定位 × 旗舰算力 × 工业级可靠‌

一、核心参数速览‌ ‌类别‌ ‌技术规格‌ ‌处理器‌ RK3588 八核&#xff08;4Cortex-A762.4GHz 4Cortex-A551.8GHz&#xff09; Mali-G610 GPU 6 TOPS NPU ‌定位能力‌ 双天线差分 GNSS&#xff08;GPS/北斗/GLONASS/Galileo&#xff09;&#xff0c;支持 RTK 动态…

【Unity 与c++通信】Unity与c++通信注意事项,参数传递

一、在Unity中使用c代码 Unity想调用C代码&#xff0c;则需要c开发人员打包成so库。 在Unity中通过DllImport&#xff0c;和dll一样调用。 需要注意的点&#xff1a; C代码需要extern"C"来封装成dll 因为unity默认使用c语言调用外部接口&#xff0c;会对c代码进行命…

DeepSeek+Mermaid:轻松实现可视化图表自动化生成(附实战演练)

目录 一、引言&#xff1a;AI 与图表的梦幻联动二、DeepSeek&#xff1a;大语言模型新星崛起2.1 DeepSeek 全面剖析2.2 多场景应用示例2.2.1 文本生成2.2.2 代码编写 三、Mermaid&#xff1a;代码式图表绘制专家3.1 Mermaid 基础探秘3.2 语法与图表类型详解3.2.1 流程图&#x…

霍格软件测试-JMeter高级性能测试一期

课程大小&#xff1a;32.2G 课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/90631395 更多资源下载&#xff1a;关注我 当下BAT、TMD等互联网一线企业已几乎不再招募传统测试工程师&#xff0c;而只招测试开发工程师&#xff01;在软件测试技术栈迭代…

【Python数据库编程实战】从SQL到ORM的完整指南

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现案例1&#xff1a;SQLite基础操作案例2&#xff1a;MySQL连接池案例3&#xff1a;SQLAlchemy ORM …

第1讲|R语言绘图体系总览(Base、ggplot2、ComplexHeatmap等)

目录 第1讲|R语言绘图体系总览 ✨ 引言:为什么R绘图如此重要? 🧩 1. Base绘图系统 🧩 2. ggplot2生态系统 🧩 3. ComplexHeatmap超级热图系统 🧩 4. 其他特色绘图库(快速了解) ✏️ 小结一句话 📅 预告下一讲 第1讲|R语言绘图体系总览 (Base、ggplot…

银行卡归属地查询的快速入门:API接口性能与安全兼备的高效实现

在金融和支付领域&#xff0c;获取银行卡的归属信息是一个常见的需求。**万维易源提供的“银行卡归属信息查询”API为开发者和企业提供了高效、便捷的银行卡信息查询服务&#xff0c;可以通过简单的接口调用获取银行卡的归属地、银行名称、电话号码、网址、卡种、银联Luhn效验和…

如何把两个视频合并成一个视频?无需视频编辑器即可搞定视频合并

在日常生活中&#xff0c;我们经常需要将多个视频片段合并成一个完整的视频&#xff0c;例如制作旅行记录、剪辑教学视频或拼接短视频素材。简鹿视频格式转换器是一款功能强大的工具&#xff0c;不仅可以进行视频格式转换&#xff0c;还支持视频合并功能。以下是使用简鹿视频格…

Android-KeyStore安全的存储系统

​ 在 Android 中&#xff0c;AndroidKeyStore 是一个安全的存储系统&#xff0c;用于存储加密密钥。它提供了一种安全的方式来生成、存储和管理密钥&#xff0c;而无需将密钥暴露给应用程序本身。以下是如何使用 AndroidKeyStore 的基本步骤和示例代码。 检查 AndroidKeyStor…