微信小程序(组件--基础内容组件)

本文深入讲解小程序中的icon图标、progress进度条、text文本组件及rich-text富文本组件的使用方法,包括各组件的属性、作用及示例代码,帮助开发者掌握小程序UI组件的基本操作。

【前言】
(1)icon图标组件
(2)progress进度条组件
(3)text文本组件
(4)拓展:富文本编辑器UE和UM
(5)rich-text 富文本组件

一、icon图标组件

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

属性类型默认值是否必填作用
typestringicon的类型
sizenumber/string23icon的大小
colorstringicon的颜色

icon图标组件type类型参数

属性类型
success成功图标,带圆环
success_no_circle成功图标,不带圆环
info信息类图标
warn警告类图标
waiting等待图标
cancel取消/关闭图标
download下载图标
search搜索图标
clear清除内容图标
<view>icon图标组件</view>
<view>
  <icon type="success" size="60" color="skyblue"></icon>
  <icon type="success_no_circle"></icon>
  <icon type="info"></icon>
  <icon type="warn"></icon>
  <icon type="waiting"></icon>
  <icon type="cancel"></icon>
  <icon type="download"></icon>
  <icon type="search" color="purple"></icon>
  <icon type="clear"></icon>
</view>

在这里插入图片描述

二、progress进度条组件

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

基础展示属性
属性类型默认值是否必填作用
percentnumber百分比0~100
show-infobooleanfalse在进度条右侧显示百分比
border-radiusnumber/string0圆角大小
font-sizenumber/string16右侧百分比字体大小
stroke-widthnumber/string0进度条线的宽度
颜色属性
属性类型默认值是否必填作用
activeColorstring#09BB07已选择的进度条的颜色
backgroundColorstring#EBEBEB已选择的进度条的颜色
动画属性
属性类型默认值是否必填作用
activebooleanfalse进度条从左往右的动画
bindactiveendfunction动画完成事件
<view>progress进度条组件</view>
<view>
  <progress percent="80" 
  show-info="true"
  border-radius="8"
  font-size="20"
  stroke-width="40"
  activeColor="#e1565b" 
  backgroundColor="#cccccc"
  active="false"></progress>
</view>

在这里插入图片描述

三、text文本组件

基础属性
属性类型默认值是否必填作用
selectablebooleanfalse文本是否可选
spacestring显示连续空格
decodebooleanfalse是否解码(可以解析的有& nbsp; & ensp; & emsp; & lt; & gt; & amp; )
属性space 的合法值
作用
ensp中文字符空格一半大小 
emsp中文字符空格大小 
nbsp根据字体设置的空格大小 
selectablebooleanfalse文本是否可选

添加该属性后,文本可以全选或者选择性复制。
注意:主要添加该属性,不管是设置为true还是false,都会生效,具体如下所示
在这里插入图片描述

decode 可解析的字符实体
显示结果描述实体名称
空格,根据字体设置的空格大小& nbsp;
空格,中文字符空格大小& emsp;
空格,中文字符空格一半大小& ensp;
<小于号& lt;
>大于号& gt;
&和号& amp;

注意
①space是针对文本中的空格符号
②decode是针对文本中存在的字符实体

四、拓展:富文本编辑器

在这里插入图片描述
正式讲解之前,首先要明确一点,所有的后台编辑器在编辑完毕后,点击发布时,都是将编辑器的代码段拼接到前台页面展示。

  • 例如富文本编辑器UE(UEditor)和UM(UeditorMINI),在后台编辑完毕后,发布时,都是将编辑器中的内容转为html然后拼接显示到前台页面。同理,小程序后台利用富文本编辑器发布文章时,需要在小程序页面正常展示。
  • 所以小程序页面需要能够解析html标签

五、rich-text 富文本组件

案例:如果想在页面展示html相关语法标签样式,怎么展示?
首先直接写下ul>li试下

<view>rich-text 富文本组件</view>
<ul>
  <li>展示信息1</li>
  <li>展示信息2</li>
  <li>展示信息3</li>
</ul>

渲染结果:
在这里插入图片描述

验证后发现,小程序无法正常显示html的ul标签元素,这里就需要用到rich-text富文本组件

<rich-text nodes="{{nodes}}"></rich-text>
  data: {
    nodes:`
      <div>
        <span>请说出你最喜欢最喜欢的明星?</span>
        <ul>
          <li>赵丽颖</li>
          <li>冯绍峰</li>
        </ul>
      </div>
    `
  },

在这里插入图片描述
案例改写:接下来对nodes的html字符串做改动

<rich-text nodes="{{nodes}}"></rich-text>
  data: {
    nodes:`
      <div>
      姓名:<input type="text" />
        <span>请说出你最喜欢最喜欢的明星?</span>
        <ul>
          <li>赵丽颖</li>
          <li>冯绍峰</li>
        </ul>
      </div>
    `
  },

在这里插入图片描述

分析:验证后发现input解析失败,即富文本组件不支持解析input输入框
原因:富文本组件rich-text只支持受信任的HTML节点及属性

属性类型默认值是否必填作用
nodesarray/string[]节点列表/HTML String
spacestring显示连续空格

nodes类型为array时
解析结果①:

<rich-text nodes="{{nodesArray}}"></rich-text>
nodesArray:[{
        type:'node',
        name:'div',
        attrs:{
          class: 'DemoArea',
          style: 'line-height:60rpx;color:red;'
        },
        children:[{
          type: 'text',
          text: 'Hello&nbsp;World!'
        }]
      }]

在这里插入图片描述
在这里插入图片描述
解析结果②:

<rich-text nodes="{{nodesArray2}}"></rich-text>
	  nodesArray2:[{
        type:'node',
        name:'ul',
        attrs:{
          class:'DemoArea',
          style:'line-height:60px; color:red;'
        },
        children:[{
          type:'node',
          name:'li',
          children:[{
            type:'text',
            text:'Hello&nbsp;World'
          }]
        }]
      }]

在这里插入图片描述
在这里插入图片描述
解析结果③:

<rich-text nodes="{{nodesArray3}}"></rich-text>
    nodesArray3: [{
      type: 'node',
      name: 'ul',
      attrs: {
        class: 'DemoArea',
        style: 'color:red;'
      },
      children: [{
        type: 'node',
        name: 'li',
        children: [{
          type: 'text',
          text: '第一行Hello&nbsp;World'
        }]
      },
      {
        type:'node',
        name:'li',
        children: [{
          type:'text',
          text:'第二行Hello&nbsp;World'
        }]
      }]
    }]

在这里插入图片描述
在这里插入图片描述
属性space的合法值

作用
ensp中文字符空格一半大小& ensp;
emsp中文字符空格大小& emsp;
nbsp根据字体设置的空格大小& nbsp;

nodes属性
现支持两种节点,通过type来区分,分别是元素节点和文本节点,默认是元素节点,在富文本区域里显示的HTML节点 元素节点:type = node

属性类型默认值是否必填备注
name标签名string支持部分受信任的 HTML 节点
attrs属性object支持部分受信任的属性,遵循 Pascal 命名法(大驼峰)
children子节点列表array结构和 nodes 一致

文本节点:type = text

属性类型默认值是否必填备注
text文本string支持entities

受信任的HTML节点及属性
全局支持class和style属性,不支持id属性

受信任HTML节点
a、abbr、address、article、aside、b、bdi、bdo、big、blockquote、br、caption、center、cite、code、col、colgroup、dd、div、dl、dt、em、footer、h1-h6、header、hr、img(属性alt,src,height,width)、li、ol、p、span、table相关、ul

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值