Skip to content
# t-grid

Grid 宫格

t-grid 组件介绍 ​

t-grid 宫格组件以灵活的栅格系统为核心,通过配置列数和可选边框,以及自定义子项样式,实现整齐划一的布局,为内容展示提供清晰有序的视觉体验。

t-grid 平台兼容 ​

HarmonyH5AndroidiOS小程序UTS
✅✅✅✅✅✅

t-grid 基础用法 ​

基础用法参考 demo/grid/grid.uvue,通过 t-grid-item 子组件定义宫格项。

vue
<template>
	<view class="p-15">
		<tui-theme-switch></tui-theme-switch>
		<t-card class="mb-15"
				title="Grid 宫格组件"
				sub-title="宫格组件以灵活的栅格系统为核心,通过配置列数和可选边框,以及自定义子项样式,实现整齐划一的布局,为内容展示提供清晰有序的视觉体验。">
		</t-card>
		<t-section title="基础功能"
				   class="mb-15">
		</t-section>
		<t-grid :column="5"
				class="r-10 mb-15">
			<t-grid-item v-for="i in 5"
						 :key="i"
						 :icon="`/static/grid/grid (${i}).png`"
						 :label="`功能${i}`">
			</t-grid-item>
		</t-grid>
		<t-section title="主题+徽标+图标"
				   class="mb-15">
		</t-section>
		<t-grid :column="5"
				class="r-10 mb-15 s-75"
				type="success"
				size="medium"
				child-label-class="mt-0">
			<!-- 通过插槽方式显示徽标 -->
			<t-grid-item icon="red-packet"
						 label="待付款">
				<template #badge>
					<t-badge type="error"
							 class="da dr-5 dt-7"
							 text="56556">
					</t-badge>
				</template>
			</t-grid-item>
			<!-- 通过属性配置显示徽标 -->
			<t-grid-item icon="car"
						 label="待发货"
						 :badge="true"
						 :badge-attrs="{text:'99',class:'da dr-5 dt-7', type:'error'}">
			</t-grid-item>
			<t-grid-item icon="bag"
						 label="待收货"
						 :badge="true"
						 :badge-attrs="{text:'HOT',class:'da dr-5 dt-7', type:'error'}">
			</t-grid-item>
			<t-grid-item icon="chat"
						 label="待评价">
			</t-grid-item>
			<t-grid-item icon="integral"
						 label="退货">
			</t-grid-item>
		</t-grid>
		<t-section title="列数设置+徽标"
				   class="mb-15"></t-section>
		<t-grid :column="2"
				type='primary'
				class="r-10 mb-15"
				child-label-class="mt-0">
			<t-grid-item icon="calendar"
						 label="签到"></t-grid-item>
			<t-grid-item icon="gift"
						 label="积分">
				<template #badge>
					<t-badge type="primary"
							 class="da dr-55 dt-15"
							 text="15">
					</t-badge>
				</template>
			</t-grid-item>
		</t-grid>
		<t-section title="列数设置"
				   class="mb-15">
		</t-section>
		<t-grid :column="4"
				class="r-10 mb-15">
			<t-grid-item v-for="i in 5"
						 :key="i"
						 :icon="`/static/grid/grid (${i}).png`"
						 :label="`功能${i}`"
						 type="error">
			</t-grid-item>
		</t-grid>
		<t-section title="可滚动"
				   class="mb-15">
		</t-section>

		<swiper :indicator-dots="true"
				:autoplay="true"
				:interval="3000"
				:duration="1000"
				class="h-200">
			<swiper-item>
				<t-grid :column="4">
					<t-grid-item v-for="i in 8"
								 :key="i"
								 :icon="`/static/grid/grid (${i}).png`"
								 :label="`功能${i}`">
					</t-grid-item>
				</t-grid>
			</swiper-item>
			<swiper-item>
				<t-grid :column="4">
					<t-grid-item v-for="i in 8"
								 :key="i"
								 :icon="`/static/grid/grid (${i}).png`"
								 :label="`功能${i}`">
					</t-grid-item>
				</t-grid>
			</swiper-item>
		</swiper>
	</view>
</template>

<script setup>
	import { ref } from 'vue'
	const column = ref(5)
</script>

t-grid Props ​

属性名说明类型默认值
path点击组件后跳转的页面路径;为空时仅响应事件string''
hover是否启用点击效果booleanfalse
type组件主题类型,可选 info、primary、error、warning、successstring''
disabled是否禁用booleanfalse
effect组件显示主题,可选 normal、dark、light、plainstring'normal'
size组件尺寸,可选 large、medium、small、ministring'medium'
column网格列数number4
childClass统一设置子组件的样式,如果子组件也设置了样式,则合并。优先级低于子组件string''
childIconClass统一设置子组件图标的样式,如果子组件也设置了样式,则合并。优先级低于子组件string's-70'
childLabelClass统一设置子组件标题文本样式,如果子组件也设置了样式,则合并。优先级低于子组件string''

t-grid Events ​

事件名说明回调参数
click点击时触发-
transitionend动画结束时触发-
initFinished组件初始化完成时触发,返回组件节点信息-
touchstart触摸开始时触发-
touchend触摸结束时触发-
touchmove触摸移动时触发-
touchcancel触摸取消时触发-

t-grid Slots ​

插槽名说明
default默认插槽,放置 t-grid-item 子组件