当前位置:网站首页>小程序中自定义组件
小程序中自定义组件
2022-07-01 03:49:00 【richest_qi】
文章目录
小程序项目
代码涉及的主要文件有:
- app.json
- pages/index/index.wxml
- pages/index/index.wxss
- pages/index/index.js

app.json
{
"pages": [
"pages/index/index"
],
"window": {
"navigationBarBackgroundColor": "#971a22",
"navigationBarTitleText": "首页",
"navigationBarTextStyle": "white"
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}
pages/index/index.wxml
<view class="indexContainer">
<view class="recommendSongContainer">
<view class="header">
<view class="title">推荐歌单</view>
<view>
<text class="desc">邂逅你的真爱歌单</text>
<text class="btn">></text>
</view>
</view>
<scroll-view class="recommendSongList" enable-flex scroll-x>
<view class="recommendItem" wx:for="{
{list}}" wx:key="id">
<image src="{
{item.picUrl}}"></image>
<view class="name">{
{item.title}}</view>
</view>
</scroll-view>
</view>
<view class="newSongContainer">
<view class="header">
<view class="title">新歌速递</view>
<view>
<text class="desc">更多鲜乐更多快落</text>
<text class="btn">></text>
</view>
</view>
</view>
<view class="newDiscContainer">
<view class="header">
<view class="title">新碟上架</view>
<view>
<text class="desc">魔力新碟好听到爆</text>
<text class="btn">></text>
</view>
</view>
</view>
<view class="screamSongContainer">
<view class="header">
<view class="title">尖叫新歌榜</view>
<view>
<text class="desc">潮人必听热门新单</text>
<text class="btn">></text>
</view>
</view>
</view>
</view>
pages/index/index.wxss
.indexContainer{
padding: 0 20rpx;
}
.header{
display: flex;
justify-content: space-between;
align-items: center;
margin: 20rpx 0;
}
.header .title{
font-weight: bold;
}
.header .desc{
font-size: 24rpx;
color: #333;
padding: 0 20rpx;
}
.header .btn{
font-size: 24rpx;
padding: 0 10rpx;
background: #eee;
color: #888;
border-radius: 6rpx;
}
.recommendSongList{
display: flex;
height: 280rpx;
}
.recommendSongList image{
width: 200rpx;
height: 200rpx;
border-radius: 10rpx;
margin-right: 10rpx;
}
.recommendSongList .name{
font-size: 26rpx;
display: -webkit-box;
overflow: hidden;
text-overflow:ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
pages/index/index.js
Page({
data:{
list:[]
},
onLoad(){
this.getDataFromServer();
},
getDataFromServer(){
const result = [
{
id: 494479726, picUrl: "https://p2.music.126.net/58ox3zVEmosSrdLaKj6x5w==/109951162827155600.jpg", title: "后摇MV | 原来后摇也能视觉化"},
{
id: 135595185, picUrl: "https://p2.music.126.net/11ZHf0G9FQzWNi-8sFzCmw==/109951164541050373.jpg", title: "Acid Jazz酸爵士—爵士乐中的“酸性”融合"},
{
id: 114846926, picUrl: "https://p2.music.126.net/GTf1b1G2dAs1SleurIfcJg==/3399689953594431.jpg", title: "歌名后缀大科普"},
{
id: 113780871, picUrl: "https://p2.music.126.net/qxUWSKhrd1UWME8oAYTMFQ==/109951164497486331.jpg", title: "「Cool Jazz」冷爵士让你全身心放松"},
{
id: 2962407224, picUrl: "https://p2.music.126.net/NW1GEN3sruiLpT4AZrdDFw==/109951165669533032.jpg", title: "『英伦女声』遗世而独立的不列颠玫瑰"},
{
id: 2107922801, picUrl: "https://p2.music.126.net/b--QkIcFfdxz_DryW55ZfA==/109951163165101034.jpg", title: "声光美学 I 经典电影中的古典配乐集"},
{
id: 78669437, picUrl: "https://p2.music.126.net/AfN_yyi-fQe8POTMKJFjAA==/7957165650297535.jpg", title: "美剧中的神级插曲"},
{
id: 3116763088, picUrl: "https://p2.music.126.net/MSom1XSXqt5K9ArZlJ29CQ==/109951164608648583.jpg", title: "音乐的力量 I 文艺复兴时期的世俗情歌"},
{
id: 101354498, picUrl: "https://p2.music.126.net/dmj9iqz8MsD_sCd1xBF0WA==/7918682744429845.jpg", title: "时尚运动•必备节奏"}
]
this.setData({
list:result})
}
})
自定义组件

项目根目录下新建文件夹:components,components下新建文件夹:Header,Header下新建Component,自动生成文件: Header.wxml、Header.wxss、Header.js和Header.json。
代码变更涉及的文件有:
- components/Header/Header.wxml
- components/Header/Header.wxss
- components/Header/Header.js
- pages/index/index.json
- pages/index/index.wxml
- pages/index/index.wxss

components/Header/Header.wxml
<view class="header">
<view class="title">{
{title}}</view>
<view>
<text class="desc">{
{desc}}</text>
<text class="btn">></text>
</view>
</view>
components/Header/Header.wxss
.header{
display: flex;
justify-content: space-between;
align-items: center;
margin: 20rpx 0;
}
.header .title{
font-weight: bold;
}
.header .desc{
font-size: 24rpx;
color: #333;
padding: 0 20rpx;
}
.header .btn{
font-size: 24rpx;
padding: 0 10rpx;
background: #eee;
color: #888;
border-radius: 6rpx;
}
components/Header/Header.js
Component({
properties: {
title:{
type:String,
value:"默认标题"
},
desc:{
type:String,
value:"默认描述"
}
},
data: {
},
methods: {
}
})
pages/index/index.json
{
"usingComponents": {
"Header":"/components/Header/Header"
}
}
pages/index/index.wxml
<view class="indexContainer">
<view class="recommendSongContainer">
<Header title="推荐歌单" desc="邂逅你的真爱歌单"/>
<scroll-view class="recommendSongList" enable-flex scroll-x>
<view class="recommendItem" wx:for="{
{list}}" wx:key="id">
<image src="{
{item.picUrl}}"></image>
<view class="name">{
{item.title}}</view>
</view>
</scroll-view>
</view>
<view class="newSongContainer">
<Header title="新歌速递" desc="更多鲜乐更多快落"/>
</view>
<view class="newDiscContainer">
<Header title="新碟上架" desc="魔力新碟好听到爆"/>
</view>
<view class="screamSongContainer">
<Header title="尖叫新歌榜" desc="潮人必听热门新单"/>
</view>
</view>
pages/index/index.wxss
.indexContainer{
padding: 0 20rpx;
}
.recommendSongList{
display: flex;
height: 280rpx;
}
.recommendSongList image{
width: 200rpx;
height: 200rpx;
border-radius: 10rpx;
margin-right: 10rpx;
}
.recommendSongList .name{
font-size: 26rpx;
display: -webkit-box;
overflow: hidden;
text-overflow:ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
小结
创建自定义组件
微信小程序中使用 Component() 实现自定义组件,它接收一个对象作为参数,该对象包含多个属性,其中,常用的有:
properties,组件的对外属性,相当于vue或react中的props。类型是Object Map,非必填。如
properties: {
title:{
type:String, //属性的类型,必填
value:"默认标题" //属性的初始值,非必填
}
}
data,组件自己内部的数据。类型是Object,非必填。methods,组件的方法。
使用自定义组件
使用自定义组件前,首先要在页面json文件中进行引用声明,如下所示,这样,页面的wxml中就可以像使用基础组件一样使用自定义组件。
{
"usingComponents": {
"Header":"/components/Header/Header"
}
}
相关链接
边栏推荐
- All in one 1086: Jiaogu conjecture
- 【TA-霜狼_may-《百人计划》】1.2.1 向量基础
- [deep learning] activation function (sigmoid, etc.), forward propagation, back propagation and gradient optimization; optimizer. zero_ grad(), loss. backward(), optimizer. Function and principle of st
- [TA frost wolf \u may- hundred people plan] 2.3 introduction to common functions
- 创新界,聚势行 | 2022人大金仓“百城巡展”火热开启
- 【TA-霜狼_may-《百人计划》】2.1 色彩空间
- 【TA-霜狼_may-《百人计划》】1.1 渲染流水线
- Leetcode 31 next spread, leetcode 64 minimum path sum, leetcode 62 different paths, leetcode 78 subset, leetcode 33 search rotation sort array (modify dichotomy)
- TS type gymnastics: illustrating a complex advanced type
- 392. 判断子序列
猜你喜欢

283.移动零
【历史上的今天】6 月 30 日:冯·诺依曼发表第一份草案;九十年代末的半导体大战;CBS 收购 CNET

Blueprism registration, download and install -rpa Chapter 1

Edge浏览器的小技巧:Enter+Ctrl可以自动将地址栏转换为网址
![[ta- frost wolf \u may- hundred people plan] 2.2 model and material space](/img/93/95ee3d4389ffd227559dc8b3207e1d.png)
[ta- frost wolf \u may- hundred people plan] 2.2 model and material space

Deep learning | rnn/lstm of naturallanguageprocessing

The method to measure the similarity of two vectors: cosine similarity, pytorch calculate cosine similarity: torch nn. CosineSimilarity(dim=1, eps=1e-08)

AfxMessageBox和MessageBox的用法

Appium自动化测试基础 — APPium基本原理

Appium fundamentals of automated testing - basic principles of appium
随机推荐
Use of JMeter counters
242. 有效的字母异位词
Unexpected token o in JSON at position 1, JSON parsing problem
[ta- frost wolf \u may- hundred people plan] 1.1 rendering pipeline
What does ft mean in the data book table
【TA-霜狼_may-《百人计划》】1.2.3 MVP矩阵运算
187. repeated DNA sequences
[JPCs publication] the Third International Conference on control theory and application in 2022 (icocta 2022)
陈宇(Aqua)-安全-&gt;云安全-&gt;多云安全
PageObject模式解析及案例
Use of comment keyword in database
创新界,聚势行 | 2022人大金仓“百城巡展”火热开启
【EI检索】2022年第六届材料工程与先进制造技术国际会议(MEAMT 2022)重要信息会议网址:www.meamt.org会议时间:2022年9月23-25日召开地点:中国南京截稿时间:2
【TA-霜狼_may-《百人計劃》】2.3 常用函數介紹
6. zigzag transformation
30. Concatenate substrings of all words
JMeter login failure, extracting login token, and obtaining token problem solving
166. fractions to decimals
241. Design priorities for operational expressions
Implement pow (x, n) function