Skip to content

Grid 宫格布局组件

宫格组件一般用于同时展示多个同类项目的场景,可以给宫格的项目设置徽标组件(badge),或者图标等,也可以扩展为左右滑动的轮播形式。 平台差异

温馨提示

本项目参考了 uView-Plus 开源项目的组件开发方式,基于 Vue 3 和 TypeScript 实现了自定义组件。目前该组件仍处于测试阶段。
感谢 uView-Plus 开源项目及其团队成员的贡献,他们的组件开发思路为本项目提供了宝贵地参考。如果需要了解更多组件开发细节,可以参考uView-Plus的 grid组件 的代码实现。

平台差异说明

APP(vue)H5微信小程序

基本使用示例

html
<!-- 全局使用 -->
<hy-gird :list="list"></hy-gird>
<!-- 单个组件引入 -->
<HyGrid :list="list"></HyGrid>
ts
import { HyGrid, IconConfig } from "hy-app"
import { ref } from 'vue';

// 创建响应式数据  
const list = ref([
    {
        icon: IconConfig.CRY_FILL,
        name: '小狗'
    },
    {
        icon: 'https://img1.baidu.com/it/u=563605416,3386931726&fm=253',
        name: '小猫'
    },
    {
        icon: 'star',
        name: '小鸡'
    },
]);

自定义插槽

html
<template>
    <hy-grid :list="list">
        <template #default="{record}">
            {{record.url}}
            {{record.title}}
        </template>
    </hy-grid>
</template>

<script setup="">
    import { IconConfig } from "hy-app"
    import { ref } from 'vue';

    // 创建响应式数据  
    const list = ref([
        {
            url: IconConfig.CRY_FILL,
            title: '小狗'
        },
        {
            url: 'https://img1.baidu.com/it/u=563605416,3386931726&fm=253',
            title: '小猫'
        },
        {
            url: 'star',
            title: '小鸡'
        },
    ]);
</script>

API

参数说明类型默认值
list数据集array-
col宫格的列数number4
border是否显示宫格的边框booleanfalse
itemHeight单个宫格高度string | number100px
align格对齐方式,表现为数量少的时候,靠左,居中,还是靠右center|left|rightleft
gap间隔string | number0px
bgColor宫格的背景颜色stringtransparent
iconConfig图标属性api配置,详见图标ApiHyIconProps-
customStyle定义需要用到的外部样式CSSProperties-

list

或者自定义添加其他键,通过插槽自定义内容

参数说明类型默认值
icon图片或者iconstring-
name名称string-
iconConfig图标属性api配置,详见图标ApiHyIconProps-

Events

事件名说明回调参数
click点击宫格触发item

Slots

插槽名说明接收值
default默认插槽record
00:46