当前位置:首页 > uni-app

uniapp树形选择

2026-01-13 18:30:29uni-app

uniapp树形选择实现方法

使用uni-data-checkbox组件

uniapp内置的uni-data-checkbox组件支持树形结构选择,适用于多级分类场景。配置时需要将数据格式化为树形结构。

<uni-data-checkbox 
  v-model="value" 
  :localdata="treeData" 
  multiple 
  text="name" 
  value="id"
></uni-data-checkbox>
data() {
  return {
    value: [],
    treeData: [{
      id: '1',
      name: '一级',
      children: [{
        id: '1-1',
        name: '二级'
      }]
    }]
  }
}

自定义递归组件

创建递归组件实现树形选择器,适合需要高度自定义的场景。

uniapp树形选择

<!-- tree-selector.vue -->
<template>
  <view>
    <view v-for="item in data" :key="item.id">
      <checkbox :value="item.id" :checked="value.includes(item.id)"/>
      <text>{{item.name}}</text>
      <tree-selector 
        v-if="item.children" 
        :data="item.children"
        :value="value"
        @change="$emit('change', $event)"
      />
    </view>
  </view>
</template>

使用第三方插件

uView UI等第三方组件库提供成熟的树形选择组件,安装后可直接使用。

uniapp树形选择

<u-tree 
  :list="list" 
  :checked="checked" 
  @check="check"
></u-tree>

数据格式化处理

后端返回的扁平数据需要转换为树形结构,常用方法:

function buildTree(items, id = null, link = 'parentId') {
  return items
    .filter(item => item[link] === id)
    .map(item => ({ ...item, children: buildTree(items, item.id) }))
}

性能优化建议

大数据量时采用懒加载策略,初始只加载顶层节点,点击时再加载子节点。可配合uni.loadFontFace预加载必要资源。

树形选择实现需根据具体需求选择方案,简单场景用内置组件,复杂需求建议使用递归组件或第三方库。数据处理时注意ID唯一性和父子关系准确性。

标签: uniapp
分享给朋友:

相关文章

uniapp删除

uniapp删除

卸载 uniapp 项目依赖 在项目根目录下执行以下命令,移除 node_modules 和依赖锁文件: rm -rf node_modules package-lock.json 如需清理全…

uniapp极光推送

uniapp极光推送

uniapp极光推送集成步骤 准备工作 注册极光推送开发者账号,创建应用获取AppKey。确保uniapp项目已配置好原生插件支持。 安装插件 在uniapp项目manifest.json文件中,选…

uniapp发布到应用商店

uniapp发布到应用商店

发布到苹果App Store 确保开发者账号已注册并加入Apple Developer Program,年费99美元。在Xcode中生成iOS发布证书(.p12)和描述文件(Provisioning…

uniapp安装axios

uniapp安装axios

安装axios 在uniapp项目中安装axios需要确保项目支持node_modules管理。通过npm或yarn安装axios: npm install axios # 或 yarn add…

uniapp面试问啥

uniapp面试问啥

技术基础类问题 UniApp框架特性 跨端实现原理及条件编译的使用场景 如何理解"一次开发,多端运行"的优缺点 rpx与vw/vh单位的适配差异 Vue相关 生命周期在Un…