前端:uniapp封装组件用法笔记

63aae275184ccac66f1119891f22f77b.png

大家在做前端项目开发的时候,经常会遇到公用的一些页面,比如搜索、列表、商品详情卡片、评论列表等。为了提高开发效率、使代码看起来更加简洁,这个时候封装相应的组件是最好的解决方案。今天小编给大家介绍一下如何在uniapp中封装组件,希望对大家能有所帮助!

1、在components目录新建card.vue 组件

<template>	
	<view class="list"v-for="item in resData">
		<view class="item" @tap="$toPage(item.url)">
			<view class="title text-ellipsis">{{item.title}}</view>
			<view class="content flex-row">
				<view class="info">
					<view class="summary">{{item.digest}}</view>
					<view class="flex-row">
						<text class="date">{{item.publishDate}}</text>
						<text class="views">{{item.viewCount}} 阅读</text>
					</view>
				</view>
				<view class="cover">
					<image class="img" :src="item.imgUrl"></image>
				</view>
			</view>
		</view>				
	</view>
</template>

<script>
	
	export default {
	propsData:{
		resData:[] /*接收传递的参数*/
	}
	}
</script>

<style lang="scss" scoped>
.item{
	padding: 30rpx;
	margin-bottom: 30rpx;
	background-color: #FFF;
	
	.title{
		font-weight: bold;
		padding-bottom: 30rpx;
		border-bottom: 2rpx solid #F5F5F5;
	}
	
	.content{
		padding-top: 30rpx;
		align-items: flex-start;
		
		.info{
			width: calc(100% - 160rpx);
			
			.summary{
				color: #777;
				height: 80rpx;
				font-size: 24rpx;
				line-height: 1.6;
				margin-bottom: 10rpx;
				@include text-ellipsis(2);
			}
			
			.date{
				font-size: 24rpx;
				color: $main-color;
				opacity: 0.6;
			}
			
			.views{
				color: #999;
				font-size: 24rpx;
			}
		}
		
		.cover{
			width: 140rpx;
			height: 120rpx;
			
			.img{
				width: 100%;
				height: 100%;
				border-radius: 4rpx;
			}
		}
	}
}
</style>

2、新建index.vue 页面

<template>
	<view class="container">
		<!--组件引用-->
		<card :resData="backendData" ></card>		
	</view>
</template>

<script>
	export default {
		data() {
			return {
				backendData: []
			}
		},
		onLoad() {
			this.initData();
		},

		methods: {
			async initData() {
			  
				//通过请求获取数据给页面的数据赋值				
				this.backendData = res.data.list;		
			}
		}
	}
</script>

<style lang="scss" scoped>
</style>

3、组件引用方式

1、全局注册方式 main.js直接导入,每个页面都可以直接调用

import card from './components/card/card.vue'

Vue.component('card',card)

2、局部注册方式

通过uniapp的easycom可以简化组件的引用,如果你创建的组件在components目录下,符合 components/组件名称/组件名称.vue 目录结构,就可以在页面直接使用,不需要在单独引用组件。uniapp默认是开启easycom配置的。所以可以直接使用。

传统的引用方式:

<script>
import cardfrom'@/components/card/card.vue' //1.vue方式导入组件
exportdefault{ components:{card}	//2.vue 方式注册组件
</script>

IT技术分享社区

个人博客网站:https://programmerblog.xyz

dbdc0902c5e5f61c2e3c2d78680071f6.png

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT技术分享社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值