React的官网示例,有不明白的地方请教各位,希望能得到解惑。
const people = [ '凯瑟琳·约翰逊: 数学家', '马里奥·莫利纳: 化学家', '穆罕默德·阿卜杜勒·萨拉姆: 物理学家', '珀西·莱温·朱利亚: 化学家', '苏布拉马尼扬·钱德拉塞卡: 天体物理学家',];export default function List() { const listItems = people.map(person => <li>{person}</li> ); return <ul>{listItems}</ul>;}
官网地址:https://react.docschina.org/learn/rendering-lists
问题1:{listItems}如果listItems是一个函数,我还能理解,可是这是个变量,看起来有点像数组变量,又有点不像,没有返回值啊。难道{}这个大括号就能输出自动遍历数组了?
问题2:<li>{person}</li>,为什么前面没有return,也没有大括号包裹。
这种jsx语法看上去有点像js,但是又有点离谱。
尝试搜索很多资料了
{}中的变量支持下面的类型
type ReactNode = | ReactElement | string | number | Iterable<ReactNode> | ReactPortal | boolean | null | undefined | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES[ keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES ];
你的那个文档 在往下看看呢
return 只是被省略了 并不是没有
问题1:{listItems}
并不是直接输出数组,而是将数组中的每个元素作为子元素传递给 <ul>
组件。在 React 中,当你尝试将一个数组(或其他可迭代对象)作为子元素传递给一个组件时,React 会自动遍历这个数组,并为每个元素创建一个新的子组件。这就是所谓的“隐式映射”(implicit mapping)。所以,{listItems}
实际上是在告诉 React:“请为 listItems
数组中的每个元素创建一个 <li>
元素”。
问题2:在 JSX 语法中,当箭头函数的主体只有一个表达式时,你可以省略大括号和 return
关键字。这是 ES6(ECMAScript 2015)中的一个特性,被称为“箭头函数表达式简写”(arrow function expression shorthand)。因此,<li>{person}</li>
等价于 <li>{() => person}</li>
,但由于函数体只有一个表达式 person
,所以可以简写为 <li>{person}</li>
。
JSX 语法是 React 的一种语法扩展,它看起来像是 HTML,但实际上是 JavaScript。JSX 允许你在 JavaScript 代码中写 HTML 标记,这使得组件的渲染更加直观和易读。然而,JSX 并不是必需的;你也可以完全使用普通的 JavaScript 函数和对象来创建 React 组件。但是,使用 JSX 通常会使代码更加简洁和易于理解。
总的来说,React 通过其组件化和声明式编程模型,使得处理列表渲染这类任务变得非常直观和简单。你只需要定义好数据(在这个例子中是 people
数组)和渲染逻辑(在这个例子中是 List
组件),React 就会负责高效地更新和渲染 UI。
请问下为什么renderDom能正常渲染renderComDom却渲染不出来?
本文向大家介绍react怎么提高列表渲染的性能?相关面试题,主要包含被问及react怎么提高列表渲染的性能?时的应答技巧和注意事项,需要的朋友参考一下 使用webpack 做代码分割。 使用hooks。
不使用递归的方式怎么渲染这种树结构 希望能得到这样的结构
数组(座位图)如何遍历?中间要留一个空的过道(div),html部分怎么写?求大佬指导? 后台返回的接口数据 我想要的结果效果图
本文向大家介绍react中怎样阻止组件渲染?相关面试题,主要包含被问及react中怎样阻止组件渲染?时的应答技巧和注意事项,需要的朋友参考一下 在极少数情况下,你可能希望能隐藏组件,即使它已经被其他组件渲染。若要完成此操作,你可以让 方法直接返回 ,而不进行任何渲染。
本文向大家介绍Javascript遍历table中的元素示例代码,包括了Javascript遍历table中的元素示例代码的使用技巧和注意事项,需要的朋友参考一下 例如: 而在JS中如何遍历赋值呢? 程序代码 看到另一种用dom的方式 (但是自己试没有试出来,不知是什么原因)
问题内容: 我本人已将OBJ解析器/导入器支持添加到我一直在努力的3D渲染引擎中。我遵循的规范发现这里几乎是“三通”,但当前的例外是将所有支持限制为组,面,顶点,法线和纹理坐标(因此,到目前为止还没有材料库或自由形式的多边形支持) 。我的目标是简单地逐行解析-随着我的进行,生成一个面向对象的,分层的树状场景图- 并允许开发人员通过很少的手动调用将数据自动绑定到着色器程序,以便开始操作和查看网格。最
本文向大家介绍说说你对React的渲染原理的理解相关面试题,主要包含被问及说说你对React的渲染原理的理解时的应答技巧和注意事项,需要的朋友参考一下 这个问题我感觉可能描述的不全面,先讲一下我的描述吧: 1.单向数据流。React是一个MVVM框架,简单来说是在MVC的模式下在前端部分拆分出数据层和视图层。单向数据流指的是只能由数据层的变化去影响视图层的变化,而不能反过来(除非双向绑定) 2.数