uniapp 打造自用组件库 (二) 详情页

简介: 本文将带领读者使用uniapp封装一些常用组件,方便日后开发时重复使用,当然文中封装的组件不可能适配所有应用场景,但是我希望读者可以跟着我的思路实现出来,然后可以在此基础上优化改进为自己合适的,本人一个前端小菜鸡,希望大佬们可以不吝赐教,也是对我的技术水平的提升

uniapp 打造自用组件库 (二) 详情页

前言

本文将带领读者使用uniapp封装一些常用组件,方便日后开发时重复使用,当然文中封装的组件不可能适配所有应用场景,但是我希望读者可以跟着我的思路实现出来,然后可以在此基础上优化改进为自己合适的,本人一个前端小菜鸡,希望大佬们可以不吝赐教,也是对我的技术水平的提升

详情页

需求

相信大家都遇到过如图这种大量展示数据的详情页面,每次都重复去写非常繁琐且无意义,我们可以通过封装组件的方式来处理这种详情页

image.png

效果展示

应用效果

image.png

应用代码
    <view>
        <Ytitle value='这是带数字标题' pieceColor='#007AFF' num='333'></Ytitle>
        <YinfoList :config="config" :data="data"></YinfoList>
    </view>
export default {
        data() {
            return {
                config: [{
                        title: '用户名',
                        key: 'username'
                    },
                    {
                        title: '性别',
                        key: 'sex'
                    },
                    {
                        title: '手机号',
                        key: 'phone'
                    },
                    {
                        title:'地址',
                        key:'address'
                    },
                    {
                        title:'出生日期',
                        key:'birthday'
                    },
                ],
                data: {
                    username: '李大锤',
                    sex: '男',
                    phone: '15095111111',
                    address: '北京前门外前门大街',
                    birthday: '2000-10-01'
                }
            }
        }
    }

实现思路

我们拿到后端数据一般是 {key:value,key1:value1}这种格式的数据,而我们展示的只有一个标题value,而value需要使用key来获取,所以我们写一个写一个配置json

[
  {
      title:'用户名',
      key:'username'
    },
  {
      title:'性别',
      key:'sex'
    },
]

这样,当我们去遍历这个json的时候,就可以展示出需要展示的所有字段标题了,同时每一个遍历项中都会拿到自己对应的key,此时我们把后端拿到的数据data传入

{
  username:'Alex',
  sex:'男'
}

这样在遍历项上使用data[item.key]就可以取到每一项对应的value

完整实现代码

<template>
    <view>
        <view class="list">
            <view class="item" @tap="tapitem(i)"  :style="{marginTop:i.top?i.top:'1rpx'}" v-for="i in config">
                <view class="view">{{i.title}}</view>
                <view class="text" v-if="data[i.key]">{{data[i.key]}}</view>
                <view class="text" v-if="!(data[i.key])">空</view>
            </view>
        </view>
    </view>
</template>

<script>
    export default {
        props: {
            config: {
                type: Array,
                default: []
            },
            data: {
                type: Object,
                default: {}
            }
        },
        data() {
            return {
                tapitem(info){
                    console.log('info',info)
                    this.$emit('')
                },
            };
        }
    }
</script>

<style lang="scss" scoped>
    .list {
        display: flex;
        flex-direction: column;
        background-color: #f2f2f2;
    }

    .item {
        display: flex;
        align-items: center;
        background-color: #fff;
        justify-content: space-between;
        flex-wrap: wrap;
        padding: 0 30rpx;
        &:active{
            background-color: #f2f2f2;
        }
        
        .view {
            padding: 30rpx 0;
            font-size: 14px;
            flex: 1;
            color: #333333;
        }

        .text {
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 0;
            overflow: hidden;
            font-size: 14px;
            color: #999;
        }
    }
</style>
相关文章
|
24天前
|
数据挖掘
uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件
uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件
46 10
|
24天前
|
搜索推荐 JavaScript 数据可视化
uniapp/vue个性化单选、复选组件
uniapp/vue个性化单选、复选组件
62 5
|
22天前
|
数据可视化 大数据 API
低代码可视化开发-uniapp新闻跑马灯组件-代码生成器
低代码可视化开发-uniapp新闻跑马灯组件-代码生成器
56 2
|
22天前
|
存储 API 数据库
uniapp APP自动更新组件
uniapp APP自动更新组件
50 1
|
8天前
|
移动开发 编解码 数据可视化
低代码可视化-uniapp SliderRange区间组件-代码生成器
SliderRange区间组件是一种用户界面元素,允许用户通过拖动滑块选择数值范围。组件支持微信小程序、H5和App,具有高度可定制性、响应式设计和多种事件处理功能。适用于价格筛选、音量调节等场景。代码实现包括滑动区域、滑块、事件处理等部分,支持可视化配置步长、颜色等属性。使用时需注意选择合适步长、提供清晰标签和考虑无障碍设计。
27 0
|
24天前
|
编解码 数据可视化 API
DIY可视化UniApp表格组件
DIY可视化UniApp表格组件
27 0
|
27天前
|
机器学习/深度学习 算法 数据可视化
UniApp手机滑块验证组件代码生成器
UniApp手机滑块验证组件代码生成器
46 0
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
121 7
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
59 7
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
76 7