打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
kbone 高级 - 使用小程序内置组件(二)

2.5 编写系列组件

2.5.1 App.vue

在 src/index 下创建 App.vue 文件,内容如下:

<template>
<div>
<ul class="tab">
<li class="tab-item" :class="{selected: wxPrefix === 0}" @click="wxPrefix = 0">wx-component 用法</li>
<li class="tab-item" :class="{selected: wxPrefix === 1}" @click="wxPrefix = 1">wx- 前缀用法</li>
<!-- <li class="tab-item" :class="{selected: wxPrefix === 2}" @click="wxPrefix = 2">无前缀用法</li> -->
</ul>
<Comp :wxPrefix="wxPrefix" />
</div>
</template>

<script>
import Comp from './Component.vue'

export default {
name: 'App',
components: {
Comp,
},
data() {
return {
wxPrefix: 1, // 0 - wx-component 用法,1 - wx- 前缀用法,2 - 无前缀用法(需要配置 runtime.wxComponent 字段)
}
},
}
</script>

<style>
.tab {
padding: 10px;
}

.tab-item {
display: inline-block;
margin-bottom: 10px;
font-size: 18px;
padding: 5px 10px;
border-radius: 5px;
}

.tab-item.selected {
background: #3eaf7c;
color: #fff;
}
</style>

2.5.2 Component.vue

在 src/index 下创建 Component.vue 文件,内容如下:

详细参考:
https://lurongtao.github.io/felixbooks-kbone/advanced/03-%E4%BD%BF%E7%94%A8%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%86%85%E7%BD%AE%E7%BB%84%E4%BB%B6.html#242-componentvue

2.5.3 Inner.vue

在 src/index 下创建 Inner.vue 文件,内容如下:

<template>
<div>
<div class="controls" @click="onVideoControlsClick">
<div>
img1:
<img class="video-img" src="https://i.loli.net/2019/07/27/5d3c141367f2784840.jpg"/>
</div>
<div>
img2:
<img class="video-img" src="https://i.loli.net/2019/07/27/5d3c143497e6d38917.jpg"/>
</div>
<div>this is video</div>
</div>
<div class="btn-cnt">
<wx-component class="video-btn" behavior="button" open-type="share">分享</wx-component>
</div>
</div>
</template>

<script>
export default {
name: 'Inner',
methods: {
onVideoControlsClick(evt) {
console.log('onVideoControlsClick')
},
}
}
</script>

<style>
.controls {
display: flex;
width: 100%;
height: 60px;
background: #ddd;
align-items: center;
}

.controls .video-img {
width: 40px;
height: 40px;
}

.btn-cnt {
position: relative;
width: 100%;
}

.btn-cnt .video-btn {
margin: 10px auto;
width: 100px;
height: 30px;
color: #fff;
background: #07c160;
text-align: center;
line-height: 30px;
border-radius: 10px;
}
</style>

在 src/index 下创建 Inner2.vue 文件,内容如下:

<template>
<div :class="type[0] === 'x' ? 'inner2-x' : 'inner2-y'">
<div :id="type + 'block1'" class="block block1"></div>
<div :id="type + 'block2'" class="block block2"></div>
<div :id="type + 'block3'" class="block block3"></div>
<div :id="type + 'block4'" class="block block4"></div>
<div :id="type + 'block5'" class="block block5"></div>
</div>
</template>

<script>
export default {
name: 'Inner2',
props: ['type'],
}
</script>

<style>
.inner2-x {
display: flex;
}
.block {
width: 100%;
height: 50px;
}
.inner2-x .block {
flex: 0 0 125px;
width: 125px;
height: 125px;
}
.block1 {
background: #dff0d8;
}
.block2 {
background: #f5f5f5;
}
.block3 {
background: #d9edf7;
}
.block4 {
background: #fcf8e3;
}
.block5 {
background: #f2dede;
}
</style>

2.5.5 小程序端效果预览

npm run mp

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vue3 teleport的使用案例详解
Vue指令之事件修饰符
vue实现公共头部尾部的方法
line
Vue.js
Vue.js 入门:从零开始做一个极简 To-Do 应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服