React 折叠面板是一种常见的用户界面元素,它可以帮助用户更好地理解和控制信息的展示。它通常由一个标题栏和一个内容区域组成,当用户单击标题栏时,内容区域会折叠/展开。
React 折叠面板的优势在于,它能够有效地将大量信息进行分组,使得用户能够快速浏览并找到所需的信息。此外,React 折叠面板还具有良好的交互性,能够让用户快速、方便地对信息进行浏览、排序、过滤等操作。
import React, { useState } from 'react'; import { Collapse } from 'react-collapse'; const App = () => { const [isOpen, setIsOpen] = useState(false); return (); };Content
可同时展开多个面板,面板之间不影响
render() {
const activeName = "1";
return (
<Collapse value={activeName}>
<Collapse.Item title="一致性 Consistency" name="1">
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
</Collapse.Item>
<Collapse.Item title="反馈 Feedback" name="2">
<div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
</Collapse.Item>
<Collapse.Item title="效率 Efficiency" name="3">
<div>简化流程:设计简洁直观的操作流程;</div>
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
</Collapse.Item>
<Collapse.Item title="可控 Controllability" name="4">
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
<div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
</Collapse.Item>
</Collapse>
)
}
每次只能展开一个面板
通过 accordion
属性来设置是否以手风琴模式显示。
constructor(props) {
super(props)
this.state = {
activeName: "1"
}
}
render() {
return (
<div>
<Button
type="primary"
style={{marginBottom: "15px"}}
onClick={() => this.setState({ activeName: "3" })}
>
打开第三个
</Button>
<Collapse value={this.state.activeName} accordion>
<Collapse.Item title="一致性 Consistency" name="1">
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
</Collapse.Item>
<Collapse.Item title="反馈 Feedback" name="2">
<div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
</Collapse.Item>
<Collapse.Item title="效率 Efficiency" name="3">
<div>简化流程:设计简洁直观的操作流程;</div>
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
</Collapse.Item>
<Collapse.Item title="可控 Controllability" name="4">
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
<div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
</Collapse.Item>
</Collapse>
</div>
)
}
可以通过 title
属性来实现自定义面板的标题内容,以实现增加图标等效果。
render() {
return (
<Collapse accordion>
<Collapse.Item title={<span>一致性 Consistency<i className="header-icon el-icon-information"></i></span>}>
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
</Collapse.Item>
<Collapse.Item title="反馈 Feedback">
<div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
</Collapse.Item>
<Collapse.Item title="效率 Efficiency">
<div>简化流程:设计简洁直观的操作流程;</div>
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
</Collapse.Item>
<Collapse.Item title="可控 Controllability">
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
<div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
</Collapse.Item>
</Collapse>
)
}
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
accordion | 是否手风琴模式 | boolean | — | false |
value | 当前激活的面板(如果是手风琴模式,绑定值类型需要为string ,否则为array ) |
string/array | — | — |
事件名称 | 说明 | 回调参数 |
---|---|---|
onChange | 当前激活面板改变时触发(如果是手风琴模式,参数类型为string ,否则为array ) |
(activeNames: array/string) |
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
name | 唯一标志符 | string/number | — | — |
title | 面板标题 | string/node | — | — |
Loading 加载加载数据时显示动效。区域加载在表格等容器中加载数据时显示。Element Plus 提供了两种调用 Loading 的方法:指令和...
PageHeader 页头如果页面的路径比较简单,推荐使用页头组件而非面包屑组件。基础用法templateel-page-header @back="goBack" con...
Carousel 走马灯在有限空间内,循环播放同一类型的图片、文字等内容基础用法适用广泛的基础用法结合使用el-carousel和el-carouse...
Drawer 抽屉有些时候,Dialog组件并不满足我们的需求, 比如你的表单很长, 亦或是你需要临时展示一些文档,Drawer拥有和Dialog几乎...
在做网页开发时,遇到内容很多的情况下,一般会使用分页来进行处理。在Bootstrap4中,我们可以通过.pagination类和.page-item来...
轮播是一个一个幻灯片组件,用来循环显示图片元素,或者滚动的文字。轮播创建以下实例创建了一个简单的图片轮播效果:实例:!DOC...
Bootstrap4支持多种浏览器和设备,不管是最新的还是一些较早的浏览器,都支持。具体支持哪一些,请看下面内容。支持的浏览器Boot...
默认情况下,axios 将 JavaScript 对象序列化为 JSON。要以 application/x-www-form-urlencoded 格式发送数据,你可以使用以下选...