React JSX常用语法总结

news/2024/7/15 18:40:19 标签: react.js, 前端, 前端框架, javascript

React JSX语法

什么是React JSX

JSX(javascript xml)
就是JavaScript和XML结合的一种格式,是JavaScript的语法扩展,只要把HTML代码写在JS中,就为JSX。用于动态构建用户界面的Javascript库,发送请求获取数据,处理数据,过滤,整理格式,操作DOM呈现页面,React是一个将数据渲染为HTML视图的开源JavaScript库。

JS和JSX的区别

原生JavaScript操作DOM繁琐,效率低,使用Javascript直接操作Dom,浏览器会进行大量的重绘重排,原生JavaScript没有组件化的编码方案,代码复用率比较低。
JS是直接写在下·XML的语法,每个XML标签都会被JSX工具转换成纯JS代码,使用JSX可以使组件的结构和组件之间的关系看上去更加的清晰,JS是原生写法,需要通过script标签引入。
React JSX

React使用JSX的有点

  • JSX执行更快,因为它在编译为JavaScript代码后进行优化。
  • 它是类型安全的,在编译过程中就能发现错误。
  • 声明式语法更加直观,与HTML结构相同,降低了学习成本,提升开发效率。
  • JSX语法中一定要有一个定义元素包裹,否则编译报错,程序不能运行。

React JSX 中使用JS表达式

再JSX中通过大括号语法{}识别javaScript中的表达式,比如常见的变量,函数调用,方法调用等等

  1. 使用引号传递字符串。
  2. 使用JavaScript变量。
  3. 函数调用和方法调用。
  4. 使用JavaScript对象。
    React JSX

React JSX 中实现列表渲染

语法:再JSX中可以使用原生的JS中的map方法遍历渲染列表。

javascript">const List = [
  {id:"01",name:"vue2"},
  {id:"02",name:"React"},
  {id:"03",name:"eachers"},
  {id:"04",name:"vue3"},
]
function Home(){
  return(
    <div>
      {/* map循环那个结构,return那个结构,*/}
      {/* 注意,循环列表时加上一个独一无二的值key  */}
      <ul>
        {List.map(item=><li key={item.id}>{item.name}</li>)}
      </ul>
    </div>
  )
}
export default Home

key的作用:react框架内部,提升Dom操作的性能。

React JSX 中实现条件渲染

一条使用逻辑与,多条使用三元运算符

javascript">const isLogin = true
function Home(){
  return(
    <div>
      {/* 逻辑与 */}
      {isLogin && <span>this is span</span>}
      {/* 三元运算符 */}
      {isLogin ? <span>jack</span>:<span>loading...</span>}
    </div>
  )
}
export default Home

React JSX 复杂情况条件渲染

解决方案,自定义函数和自定义语句

javascript">const articalType = 1 //0 1 2
// 定义核心函数,根据文章类型返回不同的JSX模板
function getArticleTem(){
  if(articalType === 0){
    return <div>我是无图文章</div>
  }else if(articalType===1){
    return <div>我是单图模式</div>
  }else{
    return <div>我是三图模式</div>
  }
}
function Home(){
  return(
    <div>
      {/* 通过调用函数渲染不同的模板 */}
      {getArticleTem()}
    </div>
  )
}
export default Home

React JSX

React JSX事件绑定

语法: on + 事件名称 = {事件处理程序}

1.点击触发并且拿到参数e

javascript">function Home(){
  const handleClik = (e)=>{
    console.log("button被点击了",e)
  }
  return(
    <div>
     <button onClick={handleClik}>click me</button>
    </div>
  )
}
export default Home
  1. 传递自定义参数 事件绑定的位置该找成箭头函数的写法, 在执行click实际处理业务函数的时候传递实参。
javascript">function Home(){
  //传递自定义参数
  const handleClik = (name)=>{
    console.log("button被点击了",name)
  }
  return(
    <div>
     <button onClick={()=>handleClik("jack")}>click me</button>
    </div>
  )
}
export default Home
  1. 同时传递事件对象和自定义参数,在事件绑定的位置传递实参e和自定义参数,handleClick中生命形参,注意顺序对应。
javascript">function Home(){
  //既要传递自定义参数,而且还要传递事件对象e
  const handleClik = (name,e)=>{
    console.log("button被点击了",name,e)
  }
  return(
    <div>
     <button onClick={(e)=>handleClik("jack",e)}>click me</button>
    </div>
  )
}
export default Home

React中的组件

概念:
一个组件就是用户界面的一部分,它可以有自己的逻辑和外观,组件之间可以互相嵌套,可以以复用多次。组件化开发可以让开发者像搭积木一样搭建一个庞大的项目。
React JSX

React中,一个组件就是首字母大写的函数,内部存放了组建的逻辑和视图UI,渲染组件只需要把组件当成标签书写即可。

一个简单组件例子

javascript">function Home(){
  return(
    <div>
      {/* 自闭和 */}
      <Button />
      {/* 成对标签 */}
      <Button></Button>
    </div>
  )
}
function Button(){
  // 组件内部逻辑
  return <button>click me</button>
}
export default Home

React JSX

也可以将组件写成箭头函数形式。
在这里插入图片描述
完结~


http://www.niftyadmin.cn/n/5126923.html

相关文章

JS的事件委托(Event Delegation)

✨ 事件委托&#xff08;Event Delegation&#xff09;及其优势和缺点 &#x1f383; 什么是事件委托 事件委托是一种在JavaScript中处理事件的技术。它利用了事件的冒泡机制&#xff0c;将事件处理程序绑定到它们的共同祖先元素上&#xff0c;而不是直接绑定到每个子元素上。…

【计算机毕设小程序案例】基于SpringBoot的小演员招募小程序

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 &#x1f449;IT源码社-SpringBoot优质案例推荐&#x1f448; &#x1f449;IT源码社-小程序优质案例…

GMT 格式 转 标准日期格式

需求&#xff1a;有一个时间格式&#xff1a;TUE NOV 14 08:00:00 GMT08:00 2000 我需要将这种格式的时间转换为标准日期格式&#xff0c;并且只修改这种时间格式的时间&#xff0c;不影响其他的 思路&#xff1a;我想到的是用正则来判断&#xff0c;SimpleDateFormat来进行转换…

应用案例|基于三维机器视觉的机器人引导电动汽车充电头自动插拔应用方案

Part.1 项目背景 人类对减少温室气体排放、提高能源效率以及减少对化石燃料的依赖&#xff0c;加速了电动汽车的普及&#xff0c;然而&#xff0c;电动汽车的充电依然面临一些挑战。传统的电动汽车充电通常需要人工干预&#xff0c;插入和拔出充电头&#xff0c;这不仅可能导致…

苹果系统H5下拉加载事件重复触发(react hooks)

文章目录 问题描述解决思路引发的问题优化后的代码 问题描述 ios端手机下的h5/小程序&#xff0c;滚动到底部时加载更多数据&#xff0c;但是滚动到底部时重复触发加载事件&#xff0c;在安卓机下则不会发生该问题&#xff0c;记录一下解决方案。 解决思路 为了防止下拉事件重…

前端入门(一)JavaScript语法、数据类型、运算、函数

文章目录 概念JavaScript编写的位置基本语法数据类型变量声明var、let、constundefined与null的区别字符串类型数组Map和Set函数定义与参数传递 变量的作用域let、const方法的定义与调用常用内部对象json对象原型操作BOM对象操作DOM对象表单操作&#xff08;验证&#xff09;MD…

Visual Studio(VS)C++项目 管理第三方依赖库和目录设置

发现很多程序员存在这种做法&#xff1a;把项目依赖的第三方库的lib和dll放在项目目录下&#xff0c;或者复制到输出目录&#xff0c;因为每种配置都有不同的输出目录&#xff0c;所以要复制多份&#xff08;至少包括Debug和Release两个输出目录&#xff09;&#xff0c;这些做…

【Linux】操作系统以及虚拟机的安装与配置

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Linux的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.操作系统的介绍 二.VMWare虚拟机的安装…