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

简介: 微信小程序组件文章目录微信小程序组件一、小程序组件1.组件介绍2.组件分类二、视图容器1.视图容器2.可滚动视图容器3.滑块视图容器4.可移动视图容器5.可覆盖在原生组件之上的文本视图容器三、基本内容1.图标组件2.文本组件3.富文本组件4.进度条组件四、表单组件1.按钮组件2.复选框组件3.输入框组件4.标签label.从底部单起的滚动选择器6.嵌入页面的滚动选择器7.单选框组件8.滑动条组五、导航组件六、媒体组件1.音频组件.图片组件3.视频组件4.相机组件七、地图组件八、画布组件九、推荐小程序(欢迎各位大佬指导)微信小程序组件文章目录微信小程序组件一、小程序组件1.组件介绍2.组件分类

微信小程序组件


文章目录

微信小程序组件

一、小程序组件

1.组件介绍

2.组件分类

二、视图容器

1.视图容器

2.可滚动视图容器

3.滑块视图容器

4.可移动视图容器

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

三、基本内容

1.图标组件

2.文本组件

3.富文本组件

4.进度条组件

四、表单组件

1.按钮组件

2.复选框组件

3.输入框组件

4.标签label

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

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

7.单选框组件

8.滑动条组件

五、导航组件

六、媒体组件

1.音频组件

2.图片组件

3.视频组件

4.相机组件

七、地图组件

八、画布组件

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


一、小程序组件

1.组件介绍

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

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

其中id属性是一个通用属性,可以被所有组件使用。小程序目前提供七类通用属性,如表所示。1c2a2db8097acdb68064dab88f6b142.png

2.组件分类


基础组件按照功能主要分类如下:

1.视图容器(View Container):主要用于规划布局页面内容;

2.基础内容(Basic Content):用于显示图标、文字等常用基础内容;

3.表单组件(Form):用于制作表单;

4.导航组件(Navigation):用于跳转指定页面;

5.媒体组件(Media):用于显示图片、音频、视频等多媒体内容;

6.地图组件(Map):用于显示地图效果;

7.画布组件(Canvas):用于绘制图画内容。

二、视图容器

视图容器组件主要包含5种,如表所示。551dbb181d71711bf7aa22df283e26d.png

1.视图容器

1.view是静态的视图容器,通常用和首尾标签来表示一个容器区域。需要注意的是,view容器本身没有大小和颜色,需由开发者自行进行样式设置。181a13679e5a8ba84ed42aa955bb1e7.png

2.可滚动视图容器

2.滚动视图scroll-view 是可滚动视图区域,对应的属性如表所示。 注:使用竖向滚动时,需要给一个固定高度,并且通过 WXSS 设置 height。40f4374689cdbc30ccfa456da581191.png

3.滑块视图容器

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

<swiper indicator-dots autoplay></swiper>

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

4.可移动视图容器

4.可移动视图movable-view 也称为可移动的视图容器,该组件可以在页面中拖拽滑动。该组件不能独立使用,必须放在组件中且是直接子节点,否则无效。ec9cba74b46369438d7877ed24b53ac.png注:movable-area 可以自定义width和height属性,其默认值均为10px。

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

5.是可以覆盖在原生组件上的文本视图,可覆盖的原生组件包括:map、video、canvas、camera、live-player、live-pusher等。其内部只允许嵌套使用、和。e4fb8fa4a8db1b3cea0026ab47a0e71.png

三、基本内容

基础组件主要包含4种61094087c3f25e0ca0c9222de99e981.png

1.图标组件

1.为图标组件,开发者可以自定义其类型、大小和颜色。该组件对应的属性如表所示。f27e7ad3fc004d1465c0b26988f73a7.png例如,依次生成红、黄、蓝色的信息图标。代码如下:

<!--WXML-->
<view>
  <block wx:for="{{iconColor}}">
    <icon type="info" color="{{item}}"/>
  </block>
</view>
//JS
Page({
  data: {
    iconColor: ['red', 'yellow', 'blue']
})

2.文本组件

2.text为文本组件,该组件对应的属性如表所示。de50a6201f9a1b25e060fa76bf1e61f.png

3.富文本组件

3.为富文本组件,该组件对应的属性如表所示。cae790c86396adfb44e3c84528dfdfa.png例如,在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为进度条组件,该组件对应的属性如表所示。be5756191570ba438af4b7c22b4c051.png例如,声明一个目前正处于80%刻度,并且宽20px的进度条组件。WXML代码如下:

<progress  percent="80"  stroke-width="20"  / >

四、表单组件

表单组件主要包含10种,如表所示。ae289ecc8646417c18c3cca18ce2a3e.png

1.按钮组件

为按钮组件,该组件对应的常用属性如表所示。b85735990aee0cc464b65adbb7a9151.png注:hover-class 的属性值button-hover 默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}

2.复选框组件

组件的属性值如表所示。dbd8108e10dcb46faf5ff0c1d9e5317.png

3.输入框组件

为输入框组件,其属性值如表所示。d97bf6f5868501a102d9407e890d0bc.pngd6eaf432404da92df6a988d8546964b.pngkeyCode为键值,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

以多选框为例,使用标签的for属性代码如下:

<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.嵌入页面的滚动选择器

是嵌入页面的滚动选择器,相关属性如表所示d90575e916f08795cbff4eb2adb085a.png

7.单选框组件

为单选项目组件,往往需要与单项选择器组件配合使用,其中首尾标签之间可以包含若干个组件。 组件只有一个属性,如表所示。fa29f4875c07dedb3601bd9586f900f.png组件的属性值如表所示。

1b833e8cf7a50c5999494dabb1dd6e0.png

8.滑动条组件

为滑动选择器。该组件对应的属性如表所示。

e459b4fe03d508147a1be5e9e32f3b5.png

五、导航组件

导航组件用于点击跳转页面链接,其对应的属性如表所示。

属性名 类型 默认值 说明
target String 在哪个目标上发生跳转,默认当前小程序
url string 当前小程序内的跳转链接地址
open-type string navigate 跳转方式,共有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

七、地图组件

是地图组件,根据指定的中心经纬度可以使用腾讯地图显示对应的地段。

属性名 类型 说明

longitude Number 中心经度

latitude Number 中心纬度

scale Number 缩放级别,取值范围为5-18。默认值为16

markers Array 标记点

covers Array 即将移除,请使用markers替代。

polyline Array 路线

circles Array 圆

controls Array 即将废弃,请使用cover-view替代。

inelude-points Array 缩放视野以包含所有给定的坐标点

show-location Boolean 显示带有方向的当前定位点

bindmarkertap EventHandle 点击标记点时触发,会返回marker的id

bindcallouttap EventHandle 点击标记点对应的气泡时触发。会返回marker的id

bindcontroltap EventHandle 点击控件时触发,会返回control的id

bindregionehange EventHandle 视野发生变化时触发

bindtap EventHandle 点击地图时触发

bindupdated EventHandle 在地图渲染更新完成时触发

例题 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文件

map{
  width: 100%;
  height: 600rpx;
}

微信图片_20220525165120.png

八、画布组件

为画布组件,其默认尺寸是宽度300px、高度225px。 该组件对应的常用属性如表所示。

d5fb4bc9f5604b1c34e6e96892a15c2.png

在组件声明完毕后,一个简单的画图工作主要分为三个步骤: 步骤一:声明画布上下文(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()
  }
})

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

相关文章
|
3天前
|
数据采集 存储 人工智能
【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
13 0
|
3天前
|
人工智能 机器人 API
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
6 0
|
3天前
|
缓存 人工智能 API
【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
7 0
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的微信课堂助手小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的微信课堂助手小程序的详细设计和实现
34 3
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的微信阅读网站小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的微信阅读网站小程序的详细设计和实现
32 2
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的健身管理系统及会员微信小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的健身管理系统及会员微信小程序的详细设计和实现
28 0
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的微信阅读小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的微信阅读小程序的详细设计和实现
26 0
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的旅游出行必备商城小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的旅游出行必备商城小程序的详细设计和实现
28 0
|
14天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
14天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。