uniapp collapse动态生成多个折叠面板手动展开收起(包括uni-ui版)

前言

官方文档没有暴露出相关api,那就看看组件源码。

以下示例均通过 vue-cli 创建的 uni-app h5 项目

uView(1.x)版本

源码

node_modules\uview-ui\components\u-collapse-item\u-collapse-item.vue

这个方法是用来改变折叠面板子组件收起还是展开的,根据改变 isShow 的值来实现

方法

html 复制代码
<block v-for="item in 10">
   <u-collapse :accordion="true" :arrow="false">
      <u-collapse-item :ref="`panel${item}`" :index="item" @change="changeCollapse" title="折叠面板"></u-collapse-item>
   </u-collapse>
</block>
javascript 复制代码
<script>
export default {
	name: '',
	data() {
		return {}
	},

	methods: {
		//监听折叠面板
		changeCollapse(obj) {
            let { index, show } = obj
			this.$nextTick(() => {
				for (let i = 1; i < 11; i++) {
					this.$refs[`panel${i}`][0].isShow = false
				}
			})

			this.$nextTick(() => {
				if (show) {
					this.$refs[`panel${index}`][0].isShow = true
				}
			})
		}
	}
}
</script>

uni-ui版本

源码

node_modules\@dcloudio\uni-ui\lib\uni-collapse-item\uni-collapse-item.vue

这个方法是用来改变折叠面板子组件收起还是展开的,根据改变 isOpen 的值来实现

html 复制代码
<block v-for="item in 10">
   <uni-collapse @change="changeCollapse($event, String(item))" accordion>
      <uni-collapse-item :ref="`panel${item}`" title="折叠面板"></uni-collapse-item>
   </uni-collapse>
</block>
javascript 复制代码
<script>
export default {
	name: '',
	data() {
		return {}
	},

	methods: {
		//监听折叠面板
		changeCollapse(e, index) {
			this.$nextTick(() => {
				for (let i = 1; i < 11; i++) {
					this.$refs[`panel${i}`][0].isOpen = false
				}
			})

			this.$nextTick(() => {
				if (e) {
					this.$refs[`panel${index}`][0].isOpen = true
				}
			})
		}
	}
}
</script>
相关推荐
计算机魔术师5 小时前
DeepSeek 据报道接近完成至少 800 亿元融资,腾讯与宁德时代参与
前端
可乐ea5 小时前
多模型编排的三层:框架、模型路由与提供商路由
前端·网络·人工智能·ai智能体·多智能体协作·多模型编排·大模型路由
vx-程序开发7 小时前
【计算机毕设】51300童装超市管理系统的设计与实现
java·vue.js·spring boot·源码·课程设计·毕设·大作业
青柠之夏cc7 小时前
前端拖拽功能原生实现,不引入拖拽库完成业务
开发语言·前端·python
ym hyd 1117 小时前
题库建立与考试系统源码 Java+SpringBoot+Vue3 前后分离
java·开发语言·vue.js·spring boot·毕设
liangshanbo12157 小时前
前端大文件切片上传怎么做?
前端
Sand(ContextGate)8 小时前
Python Agent 测试实战:测试与评估,让 Agent 像传统软件一样可交付
前端·javascript·python·microsoft·ai
广州华水科技8 小时前
单北斗GNSS变形监测系统在城市安全与地质灾害中的应用前景
前端
颜进强8 小时前
20 · NestJs循环依赖与 forwardRef:容器为什么在环面前会死,"占位再补齐"怎么救
前端·后端·ai编程
颜进强8 小时前
19 · NestJs @Global 落地账:装饰器与 `isGlobal` 参数,各在什么场景上岗
前端·后端·ai编程