uniapp笔记-自定义分类组件

思路

uniapp就是基于vue的开发,构造自定义组件就和vue的自定义一样。如下例子。

例子

在pages/index/components下建立category.vue组件,如下图所示:

javascript 复制代码
<template>
	<view class="category-top">
		分类组件
	</view>
</template>

<script>
</script>

<style>
	.category-top{
		margin-top: 100rpx;
	}
</style>

在index.vue中进行注册,完整代码如下:

javascript 复制代码
<template>
	<view class="index-box">
		<bannerVue></bannerVue>
		<categoryBox></categoryBox>
	</view>
</template>

<script>
	import bannerVue from '../../components/common/banner.vue'
	import categoryBox from './components/category.vue'
	export default {
		components: {bannerVue, categoryBox},
		data() {
			return {
				title: 'Hello'
			}
		},
		onLoad() {

		},
		methods: {

		}
	}
</script>

运行效果如下:

下面完善下category.vue相关的代码。

javascript 复制代码
<template>
	<view class="category-top">
		<view class="category-box">
			<view v-for="(item, index) in categoryList" :key="index">
				 {{item.name}}
			</view>
		</view>
	</view>
</template>

<script>
	export default{
		props:{
			categoryList: {
				type: Array,
				default: () => [
					{
						id: 1,
						name: 'java'
					},
					{
						id: 2,
						name: 'C++'
					},
					{
						id: 3,
						name: 'PHP'
					},
					{
						id: 4,
						name: 'Python'
					},
					{
						id: 5,
						name: 'JavaScript'
					}
				]
			}
		}
	}
</script>

<style>
	.category-top{
		margin-top: 100rpx;
	}
</style>

运行截图如下:

下面美化,设置一些css。

完整代码如下:

javascript 复制代码
<template>
	<view class="category-top">
		<view class="category-box">
			<view v-for="(item, index) in categoryList" :key="index">
				 {{item.name}}
			</view>
		</view>
	</view>
</template>

<script>
	export default{
		props:{
			categoryList: {
				type: Array,
				default: () => [
					{
						id: 1,
						name: 'java'
					},
					{
						id: 2,
						name: 'C++'
					},
					{
						id: 3,
						name: 'PHP'
					},
					{
						id: 4,
						name: 'Python'
					},
					{
						id: 5,
						name: 'JavaScript'
					},
					{
						id: 6,
						name: 'HTML'
					},
					{
						id: 7,
						name: 'Web'
					},
					{
						id: 8,
						name: 'ALL'
					}
				]
			}
		}
	}
</script>

<style lang="scss">
	.category-top{
		margin-top: 50rpx;
	}
	.category-box{
		display: flex;
		justify-content: space-around;
		flex-wrap: wrap;
		padding: 20rpx 30rpx 0 30rpx;
		>view{
			width: 160rpx;
			height: 70rpx;
			background: #C0C0C0;
			text-align: center;
			line-height: 70rpx;
			font-size: 26rpx;
			border-radius: 20rpx;
			overflow: hidden;
			margin-top: 15rpx;
		}
	}
</style>

运行截图如下:

再次调整,只需要一行分类,categoryList.slice(0, 4)

完整代码如下:

javascript 复制代码
<template>
	<view class="category-top">
		<view class="category-box">
			<view v-for="(item, index) in categoryList.slice(0, 4)" :key="index">
				 {{item.name}}
			</view>
		</view>
	</view>
</template>

<script>
	export default{
		props:{
			categoryList: {
				type: Array,
				default: () => [
					{
						id: 1,
						name: 'java'
					},
					{
						id: 2,
						name: 'C++'
					},
					{
						id: 3,
						name: 'PHP'
					},
					{
						id: 4,
						name: 'Python'
					},
					{
						id: 5,
						name: 'JavaScript'
					},
					{
						id: 6,
						name: 'HTML'
					},
					{
						id: 7,
						name: 'Web'
					},
					{
						id: 8,
						name: 'ALL'
					}
				]
			}
		}
	}
</script>

<style lang="scss">
	.category-top{
		margin-top: 50rpx;
	}
	.category-box{
		display: flex;
		justify-content: space-around;
		flex-wrap: wrap;
		padding: 20rpx 30rpx 0 30rpx;
		>view{
			width: 160rpx;
			height: 70rpx;
			background: #C0C0C0;
			text-align: center;
			line-height: 70rpx;
			font-size: 26rpx;
			border-radius: 20rpx;
			overflow: hidden;
			margin-top: 15rpx;
		}
	}
</style>
相关推荐
郭老二1 小时前
【前端】vue3:编译步骤
前端
tq10861 小时前
开放与封闭:类型系统的安全哲学
笔记
不在逃避q2 小时前
Trae/Vs Code/Cursor命令行无法跑npm命令
前端·arcgis·npm
夏殇之殁2 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript
龙仔7252 小时前
人大金仓 KingbaseES V8 只读账号创建完整运维笔记
运维·笔记·sql·人大金仓
韭菜炒鸡肝天2 小时前
VTK开发笔记(一):VTK介绍,Qt..+VSx+VTK.编译
开发语言·笔记·qt
The Chosen One9852 小时前
高进度算法模板速记(待完善)
java·前端·算法
陈随易2 小时前
MoonBit抓包模块pcap,查看电脑的每一次联网通信
前端·后端·程序员
新中地GIS开发老师3 小时前
WebGIS开发学生作品|低空航天管理与航线规划系统
前端·javascript·webgis·三维gis开发
用户059540174463 小时前
大模型对话记忆持久化踩坑实录:用 Playwright 自动化测了 300 次,终于揪出会话丢失的真凶
前端·css