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

举报
愚公搬代码 发表于 2022/11/29 20:31:25 2022/11/29
【摘要】 前言本文重点讲解⼩程序中常⽤的布局组件view,text,rich--text,button,image,navigator,icon,swiper,radio,checkbox 一、小程序常见组件 1.view<view hover-class="h-class"> 长按我才会出发样式事件</view> 2.text⽂本标签只能嵌套text⻓按⽂字可以复制(只有该标签有这个功能)可以对空...

前言

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

view,text,rich--text,button,image,navigator,icon,swiper,radio,checkbox

一、小程序常见组件

1.view

<view hover-class="h-class">
 长按我才会出发样式事件
</view>

2.text

  1. ⽂本标签
  2. 只能嵌套text
  3. ⻓按⽂字可以复制(只有该标签有这个功能)
  4. 可以对空格 回⻋ 进⾏编码
属性名 类型 默认值 说明
selectable Boolean false ⽂本是否可选
decode Boolean false 是否解码
<text selectable="{{false}}" decode="{{false}}">&nbsp;</text>

3.rich–text

富文本标签

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

// 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

<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
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'
   ],
 }
})
<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%

<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 ⼀起使⽤,才可以实现只选一个

 <radio-group bindchange="handleChange">
   <radio color="red" value="male"></radio>
   <radio color="red" value="female" ></radio>
 </radio-group>
// 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 ⼀起使⽤

<view>
  <checkbox-group bindchange="handleItemChange">
    <checkbox value="{{item.value}}" wx:for="{{list}}" wx:key="id">
      {{item.name}}
    </checkbox>

  </checkbox-group>
  <view>
    选中的水果:{{checkedList}}
  </view>
</view>
// pages/demo16/demo16.js
Page({
  data: {
    list:[
      {
        id:0,
        name:"🍎",
        value:"apple"
      },
      {
        id:1,
        name:"🍇",
        value:"grape"
      },
      {
        id:2,
        name:"🍌",
        value:"bananer"
      }
    ],
    checkedList:[]
  },
  // 复选框的选中事件
  handleItemChange(e){
    // 1 获取被选中的复选框的值
    const checkedList=e.detail.value;
    // 2 进行赋值
    this.setData({
      checkedList
    })
  }
})
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。