【微信小程序开发小白零基础入门】微信小程序组件【建议收藏】

本文详细介绍了微信小程序的基础组件,包括视图容器、基本内容、表单组件、导航组件、媒体组件、地图组件、画布组件,以及如何使用这些组件创建交互丰富的页面。例如,视图容器中的滚动视图容器可实现页面滚动,表单组件如按钮、输入框、选择器用于用户交互,媒体组件则涵盖了音频、图片和视频的展示。同时,文章还提供了各个组件的属性、事件和用例,帮助开发者更好地理解和应用小程序组件。
摘要由CSDN通过智能技术生成

微信小程序组件



一、小程序组件

1.组件介绍

小程序组件是视图层的基本组成单元,它自带微信风格UI样式和特定功能效果。例如,我们在小程序页面上所看到的图片、文本、按钮等都属于小程序组件。小程序为开发者提供了一系列基础组件,通过组合这些组件可以进行更高效地开发。

<text id="demo">这是一段文本内容。</text>

其中id属性是一个通用属性,可以被所有组件使用。小程序目前提供七类通用属性,如表所示。
属性名称类型解释备注
idString组件的唯一标示在同一个页面中用id值标示唯一组件,因此同一页不能有多个id值相同
elassString组件的样式类该属性值在wXSS中进行定义和样式内客的设置
styleString组件的内联样式可以动态设晋内联样式
data-*Any自定义属性当组件触发事件时,会附带将该厘性和值发送给对应的事件处理函数
bind*/cateh*EventHandler组件的事件绑定/捕获组件事件

2.组件分类

基础组件按照功能主要分类如下:
1.视图容器(View Container):主要用于规划布局页面内容;
2.基础内容(Basic Content):用于显示图标、文字等常用基础内容;
3.表单组件(Form):用于制作表单;
4.导航组件(Navigation):用于跳转指定页面;
5.媒体组件(Media):用于显示图片、音频、视频等多媒体内容;
6.地图组件(Map):用于显示地图效果;
7.画布组件(Canvas):用于绘制图画内容。

二、视图容器

视图容器组件主要包含5种,如表所示。
组件名称解释
view视图容器
scroll-view可滚动视图容器
swiper滑块视图容器
movable-view可移动视图容器
cover-view可覆盖在原生组件之上的文本视图容器

1.视图容器

1.view是静态的视图容器,通常用和首尾标签来表示一个容器区域。需要注意的是,view容器本身没有大小和颜色,需由开发者自行进行样式设置。
属性名类型默认值说明
hover-elassStringnone指定按下去的样式类。如果是默认值none,则没有点击状态
hover-stop-propagationBooleanfalse指定是香阻止本容器的祖先节点出现点击状态(1.5.O以上版本有效)
hover-start-timeNumber50按住本容器后多久出现点击状态〔单位:毫秒)
hover-stay-timeNumber400手指松开后点击状态保留时长〔单位:笔秒)

2.可滚动视图容器

2.滚动视图scroll-view 是可滚动视图区域,对应的属性如表所示。 注:使用竖向滚动时,需要给一个固定高度,并且通过 WXSS 设置 height。
属性名类型默认值说明
screll-xBooleanFALSE允许横向滚动
screll-yBooleanFALSE允许纵向滚动
upper-thresholdNumber50距顶部/左边多远时(单位px),触发scrolltoupper事件
lower-thresholdNumber50距底部/右边多远时(单位px),触发scrolltolower事件
scroll-topNumber设置竖向滚动条位置
scroll-leftNumber设置横向邃动条位置
seroll-into-viewString值应为某子元素id(id不能以数字开头)。设置哪个方向可该动,则在哪个方向滚动到该元素
scroll-with-animatianBooleanFALSE在设置滚动条位置时使用动画过波
enable-back-to-topBooleanFALSEiOS点击顶部状态栏、安卓双击标题栏时。滚动条返回顶部,只支持竖向
bindlserolltoupperEventHandle滚动到顶部/左边,会触发scrolltoupper事件
bindserollEventHandle滚动到底部/右边,会触发scrolltolower事件

3.滑块视图容器

3.滑块视图swiper-view 也称为滑块视图容器,通常使用该组件制作幻灯片切换播放效果。组件的可用属性如表所示。
<swiper indicator-dots autoplay></swiper>

上述代码表示希望实现一个带有指示点的滑块视图容器,并且需要自动播放。但是仅凭这一句代码是不够的,标签必须配合组件一起使用,该组件才是用于切换的具体内容。 中可以包含文本或图片,其宽高默认为100%。并且需要注意的是,组件中可直接放置的只有组件,否则会导致未定义的行为。

4.可移动视图容器

4.可移动视图movable-view 也称为可移动的视图容器,该组件可以在页面中拖拽滑动。该组件不能独立使用,必须放在组件中且是直接子节点,否则无效。
属性名类型默认值说明
seale-areaBooleanFALSE当里面的movable-view设置为支持双指缩放时,设董此伯可格绾放手势生效区域修改为整个movable-area
注:movable-area 可以自定义width和height属性,其默认值均为10px。

5.可覆盖在原生组件之上的文本视图容器

5.是可以覆盖在原生组件上的文本视图,可覆盖的原生组件包括:map、video、canvas、camera、live-player、live-pusher等。其内部只允许嵌套使用、和。
属性名类型说明
scroll-topNumber设置顶部滚动烷移量。仅在设置了overflow-y: scroll成为滚动元素后生效
sreString安标路径,支持临时路径、网络地址〔1.6.0起支持》,暂不支持base64格式
bineleadEventHandle图片加越成功时触发
bindlerrerEventHandle图片加载失败时触发

三、基本内容

基础组件主要包含4种
组件名称解释
icon图标组件
text文本组件
rich-text富文本组件
progress进度条组件

1.图标组件

1.为图标组件,开发者可以自定义其类型、大小和颜色。该组件对应的属性如表所示。
属性名类型默认值说明
typeStringnone图标类型
sizeNumber23图标大小,单位: px
colorColor图标颜色,柄败color="red

例如,依次生成红、黄、蓝色的信息图标。代码如下:

<!--WXML-->
<view>
  <block wx:for="{{iconColor}}">
    <icon type="info" color="{{item}}"/>
  </block>
</view>

//JS
Page({
  data: {
    iconColor: ['red', 'yellow', 'blue']
})

2.文本组件

2.text为文本组件,该组件对应的属性如表所示。
属性名类型默认值说明
selectableBooleanFALSE文本是否可选
spacestringFALSE显示连续空格
decodeBooleanFALSE是否解码

3.富文本组件

3.为富文本组件,该组件对应的属性如表所示。
属性名类型默认值说明
nodesArray / stringo[]节点列表/HTML String
例如,在WXML中声明一个富文本组件,代码如下:
<rich-text nodes='{{nodes}}'></rich-text>

其中{{nodes}}为自定义名称的变量,用于定义HTML内容。 如果是用纯字符串(String类型)描述HTML代码,在JS中表示如下:
Page({
  data: {
     nodes:'<div style="line-height: 60px; color: red;">Hello World!</div>'
  }
})

4.进度条组件

4.progress为进度条组件,该组件对应的属性如表所示。
属性名类型默认值说明
percentFloat百分比0~100
show-infoBooleanFALSE在进度条右侧显示百分比
stroke-widthNumber6进度条线的宽度,单位px
colorColor#09BBO7进度条颜色(请使用activeColor)
activeColorColor已远择的进度条的顿色
backeroundColorColor未选择的进度条的频色
baekerounelColorColor未选择的进度条的顿色
activeBooleanFALSE进度条从左往右的动画
例如,声明一个目前正处于80%刻度,并且宽20px的进度条组件。WXML代码如下:
<progress  percent="80"  stroke-width="20"  / >

四、表单组件

表单组件主要包含10种,如表所示。
组件名称解释
button按钮组件
checkbox复选框组件
form表单组件
input输入框组件
picker从底刻部单起的滚动选择器
picker-view嵌入页面的滚动选择器
radio单选框组件
slider滑动条组件
switch开关选择器
textarea文本框组件

1.按钮组件

为按钮组件,该组件对应的常用属性如表所示。

属性名类型默认值说明
sizeStringdefault按钮的大小
typeStringdefault按钮的样式类型
plainBooleanFALSE按钮是否镂空,背景色透明
cisabledlBooleanFALSE是否禁用
loadingBooleanFALSE名称前是否带loading图标
form-typeString用于组件,点击分别会触发组件的submit/reset事件
open-typeString微信开放能力
hover-elassStringbutton-hover指定按钮按下去的样式类。当hover-class="none”时,没有点击态效果
hover-stop-prepagationBooleanFALSE指定是否阻止本节点的祖先节点出现点击态
hover-start-timeNumber20按住后多久出现点击生态,单位毫秒
hover-stay-timeNumber70手指松开后点击态保留时间,单位毫秒
注:hover-class 的属性值button-hover 默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}

2.复选框组件

组件的属性值如表所示。
属性名类型解释备注
valuestring组件所携带的标识值当的change事件被触发时。会携带该值
checkedBoolean是否选中该组件其默认值为false
disabledBoolean是否禁用该组件其默认值为false
colorcolor组件的颜色与css中的color效果相同

3.输入框组件

为输入框组件,其属性值如表所示。
属性名类型默认值说明
valueString输入框的初始内容
typeString“text”input的类型
passwordBooleanFALSE是否是密码类型
placeholderString输入框为空时占位符
placeholder-styleString指定placeholder的样式
placeholder-classString“input-placeholder”指定 placeholder的样式类
disabledBooleanFALSE是否禁用
maxlengthNumber140最大输入长度,设置为-1的时候不限制最大长度
cursor-spacingNumber0指定光标与键盘的距离,单位px。取input距离底部的距离和cursor-spacing指定的距离的最小值作为光标与键盘的距离
auto-focusBooleanFALSE(即将废弃,请直接使用focus )自动聚焦,拉起键盘
focusBooleanFALSE获取焦点
confirm-typeString“done”设置健盘右下角按钮的文字。(最低版本1.1.0)
confirm-holdBooleanFALSE点击键盘右下角按钮时是否保持键盘不收起.(最低版本1.1.0)
cursorNumber指定focus时的光标位置。(最低版本1.5.0)
selection-startNumber-1光标起始位置,自动聚集时有效,需与selection-end搭配使用。(最低版本1.9.0)
selection-endNumber-1光标结束位置,自动聚集时有效,需与selection-start搭配使用。〔最低版本1.9.0)
adjust-positionBooleanTRUE键糕弹起时,是否自动上推页面。(最低版本1.9.90)
bindinputEventHandle键盘输入时触发,event.detail = fvalue, cursor, keyCode}.

keyCode为键值,2.1.0起支持,处理函数可以直接return 一个字符串,将替换输入框的内容。
bindfocus|EventHandle||输入框聚焦时触发,event.detail = { value, height }. height为键盘高度,在基础库1.9.90起支持
bindblur|EventHandle||输入框失去焦点时触发,event.detail = {value: value}
bindconfirm|EventHandle||点击完成按钮时触发,event.detail = {value: value}

4.标签label

以多选框为例,使用
<checkbox-group>
    <checkbox id='apple' value='apple' checked /> 
    <label for='apple'>苹果</label>
</checkbox-group>

也可以将组件直接放在
<checkbox-group>
    <label>
        <checkbox value='apple' checked />苹果
    </label>
</checkbox-group>

5.从底部单起的滚动选择器

是从底部弹起的滚动选择器组件,目前根据mode属性值的不同共支持五种选择器: 普通选择器 开发者可以自由更改数组内容和元素个数,运行效果如图所示。 对应的JS代码片段如下:
Page({
  data: {
    selectorItems:['苹果','香蕉','葡萄']
  },
  selectorChange: function (e) {
    let i = e.detail.value;//获得选项的数组下标
    let value = this.data.selectorItems[i];//获得选项的值
    this.setData({selector:value});//将选项名称更新到WXML页面上
  }
})

多列选择器 对应的JS代码片段如下:
Page({
  data: {
  multiSelectorItems: [['智', '慧'], ['云', '工', '具'], ['箱', '']]
  },
  multiSelectorChange: function (e) {
    let arrayIndex = e.detail.value;//获得选项的数组下标
    let array = this.data.multiSelectorItems;//获得选项数组
    let value = new Array();//声明一个空数组,用于存放最后选择的值
    for(let i=0;i<arrayIndex.length;i++){
      let k = arrayIndex[i];//第i个数组的元素下标
      let v = array[i][k];//获得第i个数组的元素值
      value.push(v);//往数组中追加新元素
    }
    this.setData({ multiSelector: value });//将选项名称更新到WXML页面上
  }
})


时间选择器 对应的JS代码片段如下:
Page({
  timeChange: function (e) {
    let value = e.detail.value;//获得选择的时间
    this.setData({ time: value });//将选项名称更新到WXML页面上
  }
})

日期选择器 对应的JS代码片段如下:
Page({
  dateChange: function (e) {
    let value = e.detail.value;//获得选择的日期
    this.setData({ date: value });//将选项名称更新到WXML页面上
  }
})

省市区选择器 对应的JS代码片段如下:
Page({
  regionChange: function (e) {
    let value = e.detail.value;//获得选择的省市区
    this.setData({ region: value });//将选项名称更新到WXML页面上
  }
})

6.嵌入页面的滚动选择器

是嵌入页面的滚动选择器,相关属性如表所示
属性名类型说明
valueNumberArray数组中的数字依次表示 picker-view内的 picker-view-column 选择的第几项(下标从О开始),数字大于 picker-view-column可选项长度时,选择最后一项
indicator-styleString设置选择器中间选中框的样式
indicator-classString设置选择器中间选中框的类名
mask-stylestring设置蒙层的样式
mask-classString设置蒙层的类名
bindchangeEventHandle当滚动选择,value改变时触发change 事件,event.detail = {value: value};value为数组,表示 picker-view内的 picker-view-column当前选择的是第几项(下标从0开始)

7.单选框组件

为单选项目组件,往往需要与单项选择器组件配合使用,其中首尾标签之间可以包含若干个组件。 组件只有一个属性,如表所示。
属性名类型解释备注
bindchangeEventHandle当内部<radio组件选中与否发生改变时触发change事件。携带值为:event.detail(value:被选中radio组件的value值}
组件的属性值如表所示。
属性名类型解释备注
valuestring组件所携带的标识值当的change事件被触发时,会携带该值
checkedBoolean是香选中该组件其默认值为false
disabledBoolean是否禁用该组件其默认值为false
colorcolor组件的颜色与c5s中的color效果相同

8.滑动条组件

为滑动选择器。该组件对应的属性如表所示。
属性名类型默认值说明
minNumber0最小值,允许是负数
maxNumber100最大值
stepNumber1步长,取值必须大于0,并且可被(max - min)整除
disabledBooleanFALSE是否禁用
valueNumber0当前取值
colorColor#e9e9e9背景条的颜色(请使用backgroundColor)
selected-colorColor#1aad19已选择的颜色(请使用activeColor)
activeColorColor#1aad19已选择的颜色
backgroundColorColor#e9e9e9背景条的颜色
block-sizeNumber28滑块的大小,取值范围为12- 28
block-colorColor#ffffff滑块的颜色
show-valueBooleanFALSE是否显示当前value
bindchangeEventHandle完成—次拖动后触发的事件,event.detail = {value: value}
bindchangingEventHandle拖动过程中触发的事件,event.detail = {value: value}

五、导航组件

导航组件用于点击跳转页面链接,其对应的属性如表所示。
属性名类型默认值说明
targetString在哪个目标上发生跳转,默认当前小程序
urlstring当前小程序内的跳转链接地址
open-typestringnavigate跳转方式,共有5种方式
在新页面JS文件的onLoad函数中可以获取到该参数,代码如下:
Page({
  onLoad: function (options) {
      console.log(options.date);//将在控制台打印输出20180803
  }
})

六、媒体组件

媒体组件目前主要包含4种,如表所示。
组件名称解释
audio音频组件
image图片组件
video视频组件
camera相机组件

1.音频组件

可以用于播放本地或网络音频

2.图片组件

可以用于显示本地或网络图片,其默认宽度为300px、高度为225px。

3.视频组件

可用于播放本地或网络视频资源,其默认宽度为300px、高度为225px

4.相机组件

系统相机组件,基础库 1.6.0 开始支持,低版本需做兼容处理。在真机测试时,需要用户授权 scope.camera

七、地图组件

是地图组件,根据指定的中心经纬度可以使用腾讯地图显示对应的地段。
属性名类型说明
longitudeNumber中心经度
latitudeNumber中心纬度
scaleNumber缩放级别,取值范围为5-18。默认值为16
markersArray标记点
coversArray即将移除,请使用markers替代。
polylineArray路线
circlesArray
controlsArray即将废弃,请使用cover-view替代。
inelude-pointsArray缩放视野以包含所有给定的坐标点
show-locationBoolean显示带有方向的当前定位点
bindmarkertapEventHandle点击标记点时触发,会返回marker的id
bindcallouttapEventHandle点击标记点对应的气泡时触发。会返回marker的id
bindcontroltapEventHandle点击控件时触发,会返回control的id
bindregionehangeEventHandle视野发生变化时触发
bindtapEventHandle点击地图时触发
bindupdatedEventHandle在地图渲染更新完成时触发
例题 map.js文件
  data: {
    latitude: 39.917940,
    longitude: 116.397140,
    markers: [{
      id:'001',
      latitude: 39.917940,
      longitude: 116.397140,
      iconPath:'/images/zhygjx/location.png',
      label:{
        content:'故宫博物院'
      }
    }]
  },
  regionChange: function (e) {
    console.log('regionChange被触发,视野发生变化。');
  },
map.wxml文件
  <view class='page-body'>
    <view class='title'>地图组件map的简单应用</view>
    <view class='demo-box'>
      <view class='title'>北京故宫博物院</view>
      <map latitude='{{latitude}}' longitude='{{longitude}}' markers='{{markers}}' bindregionchange='regionChange'>
      </map>
    </view>
  </view>
mao.wxss文件
map{
  width: 100%;
  height: 600rpx;
}

在这里插入图片描述

八、画布组件

为画布组件,其默认尺寸是宽度300px、高度225px。 该组件对应的常用属性如表所示。
属性名类型默认值说明
canvas-ielStringcanvas组件的唯一标识符
eisable-serollBooleanFALSE当在canvas中移动时且有绑定手势事件时,禁止屏慕邃动以及下拉刷所
lbindltouehstartEventHandle手指触摸动作开始
bindltouehmoveEventHandle手指触摸后移动
bindltouchendEventHandle手指触摸动怍作结束
bindtoucheancelEventHandle手指触摸动作被打断,如来电提醒,弹奋
bindlongtapEventHandle手指长按500ms之后,发,社发了长按事件后进行移动不会触发屏慕的滚动
bsindlerrerEventHandle当发生错误时触发error事件,detail =ierMsg: "something wrong’}
在组件声明完毕后,一个简单的画图工作主要分为三个步骤: 步骤一:声明画布上下文(CanvasContext)。 步骤二:使用画布上下文进行绘图描述(例如设置画笔颜色)。 步骤三:画图。
Page({
  onLoad: function (options) {
    //1.创建画布上下文
    const ctx = wx.createCanvasContext('myCanvas')
    //2.设置填充颜色
    ctx.setFillStyle('orange')
    //3.设置填充区域为矩形
    ctx.fillRect(20, 20, 150, 80)
    //4.画图
    ctx.draw()
  }
})

九、推荐小程序(欢迎各位大佬指导)

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智慧云工具箱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值