首页 > 其他分享 >react学习

react学习

时间:2024-12-18 14:21:43浏览次数:4  
标签:function 学习 return 渲染 Fragment react Learn Eat

React 应用程序是由 组件 组成的。一个组件是 UI(用户界面)的一部分,它拥有自己的逻辑和外观。组件可以小到一个按钮,也可以大到整个页面。

React.Fragment 和 <></>

<></> 其实是 React.Fragment 的语法糖,它们两个都可以用来对元素进行分组,渲染成 HTML 后不会增加额外的标签

jsx语法编写必须要有一个根元素,类似于vue中的template的写法,再进行嵌套时,可能会出现额外增加dom节点,这样的弊端

  1. 不符合html的dom规范
  2. 增加一些额外无意义的标签,增加html渲染的内容,影响性能

问题示例

不使用ragment

import { Fragment } from 'react';

function TableData () {
  return  (
    <div>
      <td>Eat</td>
      <td>Learn</td>
      <td>Code</td>
    </div>
  );
}

export default function Table () {
  return (
    <table>
      <tbody>
        <tr>
        <TableData />
        </tr>
      </tbody>
    </table>
  );
}

上面的代码会渲染为:

渲染的结果就是在tr中增加了一个无意义的div节点。那 TableData方法可以把div去掉吗?显然是不行的。这是因为 jsx语法本身需要包含一个根元素,移除后,则不符合jsx的语法,编译会报错,无法渲染。

<table>
  <tbody>
    <tr>
      <div>
        <td>Eat</td>
        <td>Learn</td>
        <td>code</td>
      </div>
    </tr>
  </tbody>
</table>

使用 React.Fragment语法

import { Fragment } from 'react';

function TableData () {
  return  (
    <Fragment>
      <td>Eat</td>
      <td>Learn</td>
      <td>Code</td>
    </Fragment>
  );
}

export default function Table () {
  return (
    <table>
      <tbody>
        <tr>
        <TableData />
        </tr>
      </tbody>
    </table>
  );
}

上面的代码会渲染为:

<table>
  <tbody>
    <tr>
      <td>Eat</td>
      <td>Learn</td>
      <td>code</td>
    </tr>
  </tbody>
</table>

使用语法糖 <></>

import { Fragment } from 'react';

function TableData () {
  return  (
    <>
      <td>Eat</td>
      <td>Learn</td>
      <td>Code</td>
    </>
  );
}

export default function Table () {
  return (
    <table>
      <tbody>
        <tr>
        <TableData />
        </tr>
      </tbody>
    </table>
  );
}

上述代码渲染为:

<table>
  <tbody>
    <tr>
      <td>Eat</td>
      <td>Learn</td>
      <td>code</td>
    </tr>
  </tbody>
</table>

标签:function,学习,return,渲染,Fragment,react,Learn,Eat
From: https://www.cnblogs.com/knxhd/p/18614724

相关文章

  • Jetpack Compose学习(15)——Pager组件的使用(对标ViewPager)
    原文地址:JetpackCompose学习(15)——Pager组件的使用(对标ViewPager)-Stars-One的杂货小窝从名字可以看出,Pager这个就是ViewPager的替代产物在JetpackCompose里的,Pager根据方向,主要分为2个组件:VerticalPagerHorizontalPager这2个,一个是默认占满高度,一个是默认占......
  • KMP 学习笔记
    KMP学习笔记高中的时候只是迷迷糊糊地理解了一点吧,停留在了背板的层面,后来甚至连板都背不利索了。从现在的视角来看KMP,又有新的收获。Intro去理解一个算法一个比较好的方式其实是建立实际意义。为什么打游戏的时候发不出藏话?试想一下,如果你在聊天框里面输入一个\(114514\)......
  • React 合成事件
    1.什么是React合成事件?React使用SyntheticEvent对原生事件进行封装,使得所有事件在不同浏览器中都具有相同的行为。这种封装提供了一致性和性能优化,开发者可以像使用原生事件一样使用React合成事件。2.React合成事件的特性1. 跨浏览器兼容性React的SyntheticEven......
  • Markdown的学习
    标题三级标题四级标题字体Hello,World!//粗体Hello,World!//斜体Hello,World!//斜体+粗体Hello,World!//删除线引用每日记录笔记!分割线图片!鑫珂证件照超链接跳转到博客园列表ABCwjx表格nameagewjx23代码public......
  • React 工具和库面试题(一)
    1.如何在React项目中使用Hooks从服务端获取数据?在React中,我们通常使用useEffectHook来进行副作用操作,比如从服务端获取数据,结合useState来管理数据状态。基本步骤:使用useEffect来执行异步操作(如fetch或axios请求)。使用useState来存储数据。使用asyn......
  • React工具和库面试题目(二)
    1.使用Webpack打包React项目时,如何减小生成的JavaScript文件大小?为了减小生成的JavaScript文件大小,可以采取以下几种策略:1.1代码分割(CodeSplitting)Webpack支持通过动态导入和React.lazy等技术进行代码分割,只有在需要时才加载相应的代码。这样可以有效地......
  • 强化学习:softlearning 算法的官方实现 —— 源码阅读list(完成)
    softlearning原始项目:https://github.com/rail-berkeley/softlearning国内地址:https://openi.pcl.ac.cn/devilmaycry812839668/softlearning相关:强化学习:人形机器人——soft-q-leanring的官方实现的配置环境原始项目的运行环境已经打包成docker镜像,分布地址:https://g......
  • 12.17学习总结
    1.结构体学习(学完哒)    2.写了英语作业~ 3.p1162题代码已经敲出来哒,但是运行仍存在问题,我需再努力下 ......
  • 差分约束学习笔记
    给定\(n\)个形如\(a-b≤c\)的式子,求一组解或求两个变量间的最值转化为图论问题跑最短/长路即可。例:P3275[SCOI2011]糖果。简化题意:给定一串约束条件,求所有元素的最小值。稍微转换一下,就是使两个元素差值尽可能小。例如\(x_1+c≤x_2\)如果用最短路去约束,则会取到最小......
  • 模拟退火学习笔记
    模拟退火,RP检测器,玄学算法,yyds。看什么学习笔记,当然是看日报了。过程就是模拟冶金学的退火过程,乱搞,具体理论的证明我也不是很懂。流程图(自己懂就好):优化/乱搞温度T的初始值设置问题。温度T的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一、初始温度高,则搜索......