随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。
通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率低,降低维护成本。
今天给大家介绍的一款组件前端Vue自定义开屏启动广告组件,点击广告图跳转广告详情;
阅读全文下载完整组件代码请关注微信公众号: 前端组件开发
效果图如下:
一、cc-advertView组件的使用方法
cc-advertView
组件的使用方法主要包括以下几个部分:
- 在模板中添加
cc-advertView
组件,并设置其属性:
<cc-advertView ref="ccAdvert" :timedown="12" imageUrl="https://cdn.pixabay.com/photo/2015/02/13/00/43/apples-634572_1280.jpg" @advertClick="advertClick"></cc-advertView>
其中,ref
属性用于获取组件实例,timedown
属性用于设置开屏广告的显示时间(单位:秒),imageUrl
属性用于设置广告图片的地址,@advertClick
事件用于监听广告图的点击事件。
- 在Vue实例的
methods
中定义处理广告点击事件的方法:
methods: {
// 广告图点击
advertClick() {
console.log("广告图点击");
uni.showModal({
title: '温馨提示',
content: '跳转广告事件'
});
}
}
在这个方法中,我们首先打印出一条消息,然后使用Uni-App的uni.showModal
方法弹出一个提示框,告知用户广告被点击。
- 在Vue实例的
onReady
生命周期钩子中初始化广告:
onReady() {
this.$refs.ccAdvert.initAdvert();
}
在这个方法中,我们通过this.$refs.ccAdvert.initAdvert()
调用组件实例的initAdvert
方法,完成广告的初始化。
HTML代码实现部分
<template>
<view class="content">
<!-- ref:唯一ref timedown:开屏广告秒数 imageUrl:图片地址 advertClick:广告图点击 -->
<cc-advertView ref="ccAdvert" :timedown="12"
imageUrl="https://cdn.pixabay.com/photo/2015/02/13/00/43/apples-634572_1280.jpg"
@advertClick="advertClick"></cc-advertView>
<!-- mySrc:图片地址 title:标题 @menuClick:按钮点击 -->
<cc-wxBtn mySrc="/static/image/member-menu4.png" title="我的余额" @menuClick="menuClick"></cc-wxBtn>
<!-- mySrc:图片地址 title:标题 @menuClick:按钮点击 -->
<cc-wxBtn mySrc="/static/image/member-menu2.png" title="在线客服" @menuClick="menuClick"></cc-wxBtn>
<!-- mySrc:图片地址 title:标题 @menuClick:按钮点击 -->
<cc-wxBtn mySrc="/static/image/member-menu3.png" title="邀请有礼" @menuClick="menuClick"></cc-wxBtn>
<!-- mySrc:图片地址 title:标题 @menuClick:按钮点击 -->
<cc-wxBtn mySrc="/static/image/member-menu5.png" title="关于我们" @menuClick="menuClick"></cc-wxBtn>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onReady() {
this.$refs.ccAdvert.initAdvert();
},
methods: {
// 广告图点击
advertClick() {
console.log("广告图点击");
uni.showModal({
title: '温馨提示',
content: '跳转广告事件'
})
},
}
}
</script>
<style>
page {
background-color: white;
margin-bottom: 50px;
}
</style>