所属分类:web前端开发
UniApp实现表格展示与数据筛选的实现方法
一、介绍
UniApp是一款支持多端开发的跨平台框架,可以使用Vue.js进行开发,支持通过一套代码编译成iOS、Android、H5等多个平台的应用。在实际开发中,需要展示表格,并能够对表格数据进行筛选是非常常见的需求。本文将介绍在UniApp中实现表格展示与数据筛选的实现方法,并附上相应的代码示例。
二、表格展示
在UniApp中展示表格,可以使用<uni-list>
和<uni-list-item>
组件进行布局,使用<uni-title>
或<uni-cell>
等组件来呈现表头,使用<uni-cell-group>
和<uni-cell>
等组件来呈现表格内容。以下是一个简单的表格展示示例:
<template> <view> <uni-list> <uni-list-item> <uni-cell-group> <uni-cell title="姓名"></uni-cell> <uni-cell title="年龄"></uni-cell> <uni-cell title="性别"></uni-cell> </uni-cell-group> </uni-list-item> <uni-list-item v-for="(item, index) in list" :key="index"> <uni-cell-group> <uni-cell title="{{item.name}}"></uni-cell> <uni-cell title="{{item.age}}"></uni-cell> <uni-cell title="{{item.gender}}"></uni-cell> </uni-cell-group> </uni-list-item> </uni-list> </view> </template> <script> export default { data() { return { list: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' } ] } } } </script>
以上示例中,<uni-list-item>
和<uni-cell-group>
结合使用,实现了表格的布局,<uni-cell>
用于呈现每个单元格的内容。通过循环渲染<uni-list-item>
,可以动态展示表格内容。
三、数据筛选
在表格展示中,通常需要对表格数据进行筛选,UniApp提供了uni.filter
方法,可以用于数组数据的筛选。以下是一个简单的数据筛选示例:
<template> <view> <uni-input v-model="keyword" placeholder="请输入关键词"></uni-input> <uni-button @click="filterData">查询</uni-button> <uni-list> <uni-list-item> <uni-cell-group> <uni-cell title="姓名"></uni-cell> <uni-cell title="年龄"></uni-cell> <uni-cell title="性别"></uni-cell> </uni-cell-group> </uni-list-item> <uni-list-item v-for="(item, index) in filteredList" :key="index"> <uni-cell-group> <uni-cell title="{{item.name}}"></uni-cell> <uni-cell title="{{item.age}}"></uni-cell> <uni-cell title="{{item.gender}}"></uni-cell> </uni-cell-group> </uni-list-item> </uni-list> </view> </template> <script> export default { data() { return { list: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' } ], keyword: '', filteredList: [] } }, methods: { filterData() { this.filteredList = uni.filter(this.list, (item) => { return item.name.includes(this.keyword) }) } } } </script>
以上示例中,通过uni-input
组件获取用户输入的关键词,然后通过uni-button
的点击事件来筛选数据。在filterData
方法中,使用uni.filter
方法对list
进行筛选,将结果赋值给filteredList
,然后通过循环渲染filteredList
来动态展示筛选后的数据。