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>
相关推荐
人生鹿呀12 分钟前
AI 情绪陪伴助手:从 0 到 1 的 PWA + 跨端应用实战
前端
人生鹿呀18 分钟前
从零打造滑板文化社区平台:React 19 + Node.js + AI 微服务全栈实战
前端
网络工程小王35 分钟前
【LCEL 链式调用详解】调用篇-2
java·服务器·前端·数据库·人工智能
swipe40 分钟前
别把语音 Agent 当成“接两个 API”——用 NestJS 搭一套 ASR + LLM + 流式 TTS 的实时语音助手
前端·后端·llm
GISer_Jing1 小时前
AI Agent中游产业链全景拆解:智能体开发的核心生态与技术版图
前端·人工智能·后端
前端之虎陈随易2 小时前
2年没用Nodejs了,Bun很香
linux·前端·javascript·vue.js·typescript
Hooray2 小时前
用时7天,花费30元,我vibe coding这个网站
前端·agent·ai编程
小小高不懂写代码2 小时前
RAG--检索增强生成--原理及实战
前端·人工智能
空中海2 小时前
04 工程化、质量体系与 React 生态
前端·ubuntu·react.js
好运的阿财3 小时前
OpenClaw工具拆解之host_workspace_write+host_workspace_edit
前端·javascript·人工智能·机器学习·ai编程·openclaw·openclaw工具