前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序入门之常用组件(04)

微信小程序入门之常用组件(04)

作者头像
海拥
发布2021-08-23 16:29:01
6530
发布2021-08-23 16:29:01
举报
文章被收录于专栏:全栈技术全栈技术

常见组件

重点讲解微信小程序中常见的布局组件 view,text,rich-text,button,image,navigator,icon,swiper, radio,checkbox


一、view

view 代替 原来的 div 标签

代码语言:javascript
复制
 <view hover-class="h-class">
 点击我试试
 </view>

二、text

text:

  1. 文本标签
  2. 只能嵌套text
  3. 长按文字可以复制(只有该标签有这个功能)

属性名

类型

默认值

说明

selectable

Boolean

false

文本是否可选 (已废弃)

decode

Boolean

false

是否解码

user-select

boolean

false

文本是否可选,该属性会使文本节点显示为 inline-block

space

string

显示连续空格

代码

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

三、image

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

不缩放图片,只显示图片的右下边区域

四、swiper

swiper: 微信内置轮播图组件

在这里插入图片描述
在这里插入图片描述

默认宽度 100% 高度 150px

属性名

类型

默认值

说明

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是否循环轮播

1. swiper

滑块视图容器。

2. swiper-item

滑块 默认宽度和高度都是100%

五、navigator

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"时生效

六、rich-text

rich-text: 富文本标签 可以将字符串解析成 对应标签,类似 vue中 v–html 功能

在这里插入图片描述
在这里插入图片描述

代码:

代码语言:javascript
复制
JAVASCRIPT
WXML
const htmlSnip =
`<div class="div_class">
  <h1>Title</h1>
  <p class="p">
    Life is&nbsp;<i>like</i>&nbsp;a box of
    <b>&nbsp;chocolates</b>.
  </p>
</div>
`

const nodeSnip =
`Page({
  data: {
    nodes: [{
      name: 'div',
      attrs: {
        class: 'div_class',
        style: 'line-height: 60px; color: red;'
      },
      children: [{
        type: 'text',
        text: 'You never know what you're gonna get.'
      }]
    }]
  }
})
`

Page({
  onShareAppMessage() {
    return {
      title: 'rich-text',
      path: 'page/component/pages/rich-text/rich-text'
    }
  },

  data: {
    htmlSnip,
    nodeSnip,
    renderedByHtml: false,
    renderedByNode: false,
    nodes: [{
      name: 'div',
      attrs: {
        class: 'div_class',
        style: 'line-height: 60px; color: #1AAD19;'
      },
      children: [{
        type: 'text',
        text: 'You never know what you\'re gonna get.'
      }]
    }]
  },
  renderHtml() {
    this.setData({
      renderedByHtml: true
    })
  },
  renderNode() {
    this.setData({
      renderedByNode: true
    })
  },
  enterCode(e) {
    console.log(e.detail.value)
    this.setData({
      htmlSnip: e.detail.value
    })
  }
})

nodes属性

nodes 属性⽀持 字符串 和 标签节点数组

属性

说明

类型

必填

备注

name

标签名

string

支持部分受信任的 HTML 节点

attrs

属性

object

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

children

子节点列表

array

结构和 nodes一致

文本节点:type = text

属性

说明

类型

必填

备注

text

文本

string

支持entities

Bug & Tip

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

七、 button

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

用于 form 组件,点击分别会触发 form 组件的 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

打开“意见反馈”页面,用户可提交反馈内容并上传日志,开发者可以登录小程序管理后台后进入左侧菜单“客服反馈”页面获取到反馈内容

open-type 的 contact的实现流程

  1. 将微信小程序 的 appid 由测试号改为 ⾃⼰的 appid
  2. 登录微信小程序官网,添加 客服客服 – 微信微信
  3. 为了方便演示,可以准备两个账号 (1). 普通用户 A (2). 客服-微信 B

八、 icon

icon: 图标。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。

属性

类型

默认值

必填

说明

type

string

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

size

number/string

23

icon的大小

color

string

icon的颜⾊,同css的color

在这里插入图片描述
在这里插入图片描述

代码: js

代码语言: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'
   ],
 }
})

wxml

代码语言: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>

九、radio

radio: 可以通过 color属性来修改颜色 需要搭配 radio-group 一起使用

在这里插入图片描述
在这里插入图片描述

代码: js

代码语言:javascript
复制
Page({
  onShareAppMessage() {
    return {
      title: 'radio',
      path: 'page/component/pages/radio/radio'
    }
  },

  data: {
    items: [
      {value: 'USA', name: '美国'},
      {value: 'CHN', name: '中国', checked: 'true'},
      {value: 'BRA', name: '巴西'},
      {value: 'JPN', name: '日本'},
      {value: 'ENG', name: '英国'},
      {value: 'FRA', name: '法国'},
    ]
  },

  radioChange(e) {
    console.log('radio发生change事件,携带value值为:', e.detail.value)

    const items = this.data.items
    for (let i = 0, len = items.length; i < len; ++i) {
      items[i].checked = items[i].value === e.detail.value
    }

    this.setData({
      items
    })
  }
})

wxml:

代码语言:javascript
复制
<view class="page-body">
  <view class="page-section">
    <view class="page-section-title">默认样式</view>
    <label class="radio">
      <radio value="r1" checked="true"/>选中
    </label>
    <label class="radio">
      <radio value="r2" />未选中
    </label>
  </view>


  <view class="page-section">
    <view class="page-section-title">推荐展示样式</view>
    <view class="weui-cells weui-cells_after-title">
      <radio-group bindchange="radioChange">
        <label class="weui-cell weui-check__label" wx:for="{{items}}" wx:key="{{item.value}}">

          <view class="weui-cell__hd">
            <radio value="{{item.value}}" checked="true"/>
          </view>
          <view class="weui-cell__bd">{{item.name}}</view>
        </label>
      </radio-group>
    </view>
  </view>
</view>

十、checkbox

checkbox: 可以通过 color属性来修改颜色 需要搭配 checkbox-group 一起使用

在这里插入图片描述
在这里插入图片描述

总结

以上就是本节要讲的内容,本文仅仅简单介绍了微信小程序中常用组件的使用,后续还会继续补充


相关内容:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常见组件
  • 一、view
  • 二、text
  • 三、image
  • 四、swiper
    • 1. swiper
      • 2. swiper-item
      • 五、navigator
      • 六、rich-text
        • nodes属性
        • 七、 button
        • 八、 icon
        • 九、radio
        • 十、checkbox
        • 总结
        相关产品与服务
        云开发 CloudBase
        云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档