【愚公系列】2022年10月 微信小程序-优购电商项目-小程序常见组件

2022-11-07 19:57:25 浏览数 (1)

文章目录

  • 前言
  • 一、小程序常见组件
    • 1.view
    • 2.text
    • 3.rich--text
    • 4.button
    • 5.image
    • 6.navigator
    • 7.icon
    • 8.swiper
    • 9.radio
    • 10.checkbox

前言

本文重点讲解⼩程序中常⽤的布局组件

代码语言:javascript复制
view,text,rich--text,button,image,navigator,icon,swiper,radio,checkbox

一、小程序常见组件

1.view

代码语言:javascript复制
<view hover-class="h-class">
 长按我才会出发样式事件
</view>

2.text

  1. ⽂本标签
  2. 只能嵌套text
  3. ⻓按⽂字可以复制(只有该标签有这个功能)
  4. 可以对空格 回⻋ 进⾏编码

属性名

类型

默认值

说明

selectable

Boolean

false

⽂本是否可选

decode

Boolean

false

是否解码

代码语言:javascript复制
<text selectable="{{false}}" decode="{{false}}">
 普&nbsp;通
</text>

3.rich–text

富文本标签

可以将字符串解析成 对应标签,类似 vue中 v–html 功能

代码语言:javascript复制
// 1   index.wxml 加载 节点数组
<rich-text nodes="{{nodes}}" bindtap="tap"></rich-text>
// 2 加载 字符串
<rich-text nodes='<img
src="https://developers.weixin.qq.com/miniprogram/assets/images/head_global_z_@all.p
ng" alt="">'></rich-text>
    
// index.js
    
Page({
  data: {
    nodes: [{
      name: 'div',
      attrs: {
        class: 'div_class',
        style: 'line-height: 60px; color: red;'
     },
      children: [{
        type: 'text',
        text: 'Hello&nbsp;World!'
     }]
   }]
 },
  tap() {
    console.log('tap')
 }
})

nodes 属性

属性

说明

类型

必填

备注

name

标签名

string

⽀持部分受信任的 HTML 节点

attrs

属性

object

⽀持部分受信任的属性,遵循 Pascal 命名法

children

⼦节点列表

array

结构和 nodes ⼀致

⽂本节点:type = text

属性

说明

类型

必填

备注

text

⽂本

string

⽀持entities

  • nodes 不推荐使⽤ String 类型,性能会有所下降。
  • rich–text 组件内屏蔽所有节点的事件。
  • attrs 属性不⽀持 id ,⽀持 class 。
  • name 属性⼤⼩写不敏感。
  • 如果使⽤了不受信任的 HTML 节点,该节点及其所有⼦节点将会被移除。
  • img 标签仅⽀持⽹络图⽚。

4.button

代码语言:javascript复制
<button
  type="default"
  size="{{defaultSize}}"
  loading="{{loading}}"
  plain="{{plain}}"
>
 default
</button>

属性

类型

默认值

必填

说明

size

string

default

按钮的⼤⼩

type

string

default

按钮的样式类型

plain

boolean

false

按钮是否镂空,背景⾊透明

disabled

boolean

false

是否禁⽤

loading

boolean

false

名称前是否带 loading 图标

form-type

string

⽤于 组件,点击分别会触发 组件的submit/reset 事件

open-type

string

微信开放能⼒

size 的合法值

说明

default

默认⼤⼩

mini

⼩尺⼨

type 的合法值

说明

primary

绿⾊

default

⽩⾊

warn

红⾊

form-type 的合法值

说明

submit

提交表单

reset

重置表单

open-type 的合法值

说明

contact

打开客服会话,如果⽤⼾在会话中点击消息卡⽚后返回⼩程序,可以从

bindcontact

回调中获得具体信息,具体说明

share

触发⽤⼾转发,使⽤前建议先阅读使⽤指引

getPhoneNumber

获取⽤⼾⼿机号,可以从bindgetphonenumber回调中获取到⽤⼾信息,具体说明

getUserInfo

获取⽤⼾信息,可以从bindgetuserinfo回调中获取到⽤⼾信息

launchApp

打开APP,可以通过app-parameter属性设定向APP传的参数具体说明

openSetting

打开授权设置⻚

feedback

打开“意⻅反馈”⻚⾯,⽤⼾可提交反馈内容并上传⽇志,开发者可以登录⼩程序管理后台后进⼊左侧菜单“客服反馈”⻚⾯获取到反馈内容

将⼩程序 的 appid 由测试号改为 ⾃⼰的 appid

5.image

  1. 图⽚标签,image组件默认宽度320px、⾼度240px
  2. ⽀持懒加载

属性名

类型

默认值

说明

src

String

图⽚

资源地址

mode

String

“scaleToFill”

图⽚裁剪、缩放的模式

lazy-load

Boolean

false

图⽚懒加载

mode 有效值: mode 有 13 种模式,其中 4 种是缩放模式,9种是裁剪模式。

模式

说明

缩放

scaleToFill

不保持纵横⽐缩放图⽚,使图⽚的宽⾼完全拉伸⾄填满image 元素

缩放

aspectFit

保持纵横⽐缩放图⽚,使图⽚的⻓边能完全显⽰出来。

缩放

aspectFill

保持纵横⽐缩放图⽚,只保证图⽚的短边能完全显⽰出来。

缩放

widthFix

宽度不变,⾼度⾃动变化,保持原图宽⾼⽐不变

裁剪

top

不缩放图⽚,只显⽰图⽚的顶部区域

裁剪

bottom

不缩放图⽚,只显⽰图⽚的底部区域

裁剪

center

不缩放图⽚,只显⽰图⽚的中间区域

裁剪

left

不缩放图⽚,只显⽰图⽚的左边区域

裁剪

right

不缩放图⽚,只显⽰图⽚的右边区域

裁剪

top left

不缩放图⽚,只显⽰图⽚的左上边区域

裁剪

top right

不缩放图⽚,只显⽰图⽚的右上边区域

裁剪

bottom left

不缩放图⽚,只显⽰图⽚的左下边区域

裁剪

bottom right

不缩放图⽚,只显⽰图⽚的右下边区域

6.navigator

导航组件 类似超链接标签

属性名

类型

默认值

说明

target

String

self

在哪个⽬标上发⽣跳转,默认当前⼩程序,可选值self/miniProgram

url

String

当前⼩程序内的跳转链接

open-type

String

navigate

跳转⽅式

open-type

说明

navigate

保留当前⻚⾯,跳转到应⽤内的某个⻚⾯,但是不能跳到tabbar ⻚⾯

redirect

关闭当前⻚⾯,跳转到应⽤内的某个⻚⾯,但是不允许跳转到tabbar ⻚⾯。

switchTab

跳转到 tabBar ⻚⾯,并关闭其他所有⾮ tabBar ⻚⾯

reLaunch

关闭所有⻚⾯,打开到应⽤内的某个⻚⾯

navigateBack

关闭当前⻚⾯,返回上⼀⻚⾯或多级⻚⾯。可通过 getCurrentPages() 获取当前的⻚⾯栈,决定需要返回⼏层

exit

退出⼩程序,target=“miniProgram”时⽣效

7.icon

属性

类型

默认值

必填

说明

type

string

icon的类型,有效值:success, success_no_circle,info, warn, waiting, cancel, download, search,clear

size

number/string

23

icon的⼤⼩

color

string

icon的颜⾊,同css的color

代码语言:javascript复制
Page({
  data: {
    iconSize: [20, 30, 40, 50, 60, 70],
    iconType: [
      'success', 'success_no_circle', 'info', 'warn', 'waiting', 'cancel',
'download', 'search', 'clear'
   ],
    iconColor: [
      'red', 'orange', 'yellow', 'green', 'rgb(0,255,255)', 'blue', 'purple'
   ],
 }
})
代码语言:javascript复制
<view class="group">
  <block wx:for="{{iconSize}}">
    <icon type="success" size="{{item}}"/>
  </block>
</view>
<view class="group">
  <block wx:for="{{iconType}}">
    <icon type="{{item}}" size="40"/>
  </block>
</view>
<view class="group">
  <block wx:for="{{iconColor}}">
    <icon type="success" size="40" color="{{item}}"/>
  </block>
</view>

8.swiper

微信内置轮播图组件

属性名

类型

默认值

说明

indicator-dots

Boolean

false

是否显⽰⾯板指⽰点

indicator-color

Color

rgba(0, 0, 0, .3)

指⽰点颜⾊

indicator-active-color

Color

#000000

当前选中的指⽰点颜⾊

autoplay

Boolean

false

是否⾃动切换

interval

Number

5000

⾃动切换时间间隔

circular

Boolean

false

s是否循环轮播

swiper

滑块视图容器。

swiper-item

滑块

默认宽度和⾼度都是100%

代码语言:javascript复制
<swiper autoplay interval="1000" circular indicator-dots indicator-color="#0094ff" indicator-active-color="#ff0094">
    <swiper-item> <image mode="widthFix" src="//gw.alicdn.com/imgextra/i1/44/O1CN013zKZP11CCByG5bAeF_!!44-0-lubanu.jpg" /> </swiper-item>
    <swiper-item> <image mode="widthFix" src="//aecpm.alicdn.com/simba/img/TB1CWf9KpXXXXbuXpXXSutbFXXX.jpg_q50.jpg" /> </swiper-item>
    <swiper-item> <image mode="widthFix" src="//gw.alicdn.com/imgextra/i2/37/O1CN01syHZxs1C8zCFJj97b_!!37-0-lubanu.jpg" /> </swiper-item>
</swiper>

9.radio

需要搭配 radio-group ⼀起使⽤,才可以实现只选一个

代码语言:javascript复制
 <radio-group bindchange="handleChange">
   <radio color="red" value="male">男</radio>
   <radio color="red" value="female" >女</radio>
 </radio-group>
代码语言:javascript复制
// pages/demo15/demo15.js
Page({
  data: {
    gender: ""
  },
  handleChange(e){
    // 1 获取单选框中的值
    let gender=e.detail.value;
    // 2 把值 赋值给 data中的数据
    this.setData({
      // gender:gender
      gender
    })
  }
})

10.checkbox

需要搭配 checkbox-group ⼀起使⽤

代码语言:javascript复制
<view>
  <checkbox-group bindchange="handleItemChange">
    <checkbox value="{{item.value}}" wx:for="{{list}}" wx:key="id">
      {{item.name}}
    </checkbox>

  </checkbox-group>
  <view>
    选中的水果:{{checkedList}}
  </view>
</view>
代码语言:javascript复制
// pages/demo16/demo16.js
Page({
  data: {
    list:[
      {
        id:0,
        name:"


	

0 人点赞