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

前言

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

基础内容组件

(1)icon图标组件
组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)
在这里插入图片描述
icon图标组件type类型参数
在这里插入图片描述
icon图标组件
在这里插入图片描述

<view>icon图标组件</view>
<view>
  <icon type="success"></icon>
  <icon type="success_no_circle"></icon>
  <icon type="info"></icon>
  <icon type="warn"></icon>
  <icon type="waiying"></icon>
  <icon type="cancel"></icon>
  <icon type="download"></icon>
  <icon type="search"></icon>
  <icon type="clear"></icon>
  <icon size="30" color="#2d78f4" type="success"></icon>
</view>

在这里插入图片描述
(2)progress进度条组件
组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)

基础展示属性
在这里插入图片描述

<progress
  percent="6" 
  show-info
  border-radius="2"
  font-size="20"
  stroke-width="8">
</progress>

在这里插入图片描述
颜色属性
在这里插入图片描述

<view>progress进度条组件</view>
<progress
  percent="60" 
  activeColor="yellow"
  active
  bindactiveend="endProgress"
  show-info
  border-radius="2"
  font-size="20"
  stroke-width="8">
</progress>
/*动画完成事件*/
  endProgress(){
    wx.showToast({
      title: '加载完毕',
    })
  },

在这里插入图片描述
在这里插入图片描述
动画属性
在这里插入图片描述

(3)text文本组件

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

<view>text文本组件</view>
<text>吖吖吖</text>
<text selectable space="ensp">啦    啦    啦</text>
<text space="emsp">嘿 嘿 嘿</text>
<text space="nbsp">嘿 嘿 嘿</text>

在这里插入图片描述
在这里插入图片描述
decode 可解析的字符实体
在这里插入图片描述

富文本编辑器

(4)拓展:富文本编辑器
首先要明确一点,所有的后台编辑器在编辑完毕后,点击发布时,都是将编辑器的代码段拼接到前台页面展示。

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

所以小程序页面需要能够解析html标签

基础内容组件

(5)rich-text 富文本组件
前言:如果想在页面展示html相关语法标签样式,怎么展示?

首先直接写下ul>li试下

<view>rich-text 富文本组件</view>
<ul>
  <li>吖吖吖</li>
  <li>啦啦啦</li>
</ul>

在这里插入图片描述
验证后发现,小程序无法正常显示html的ul标签元素,这里就需要用到rich-text富文本组件
案例:

<rich-text nodes="{{nodes}}"></rich-text>
  nodes: `
      <div>
        <span>请说出你喜欢的水果?</span>
        <ul>
          <li>苹果</li>
          <li>香蕉</li>
          <li>草莓</li>
        </ul>
      </div>
    `

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

  data: {
    nodes: `
      <div>
      姓名:<input type="text"/>
        <span>请说出你喜欢的水果?</span>
        <ul>
          <li>苹果</li>
          <li>香蕉</li>
          <li>草莓</li>
        </ul>
      </div>
    `
  },

在这里插入图片描述
分析:验证后发现input解析失败,即富文本组件不支持解析input输入框
原因:富文本组件rich-text只支持受信任的HTML节点及属性
在这里插入图片描述
在这里插入图片描述
nodes属性
现支持两种节点,通过type来区分,分别是元素节点和文本节点,默认是元素节点,在富文本区域里显示的HTML节点 元素节点:type = node
在这里插入图片描述
文本节点:type = text
在这里插入图片描述

<rich-text type="text">吖吖吖</rich-text>

受信任的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
nodes类型为array
在这里插入图片描述

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

在这里插入图片描述

nodesArray:[{
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!'
}]
}]
}],
<ul class="DemoArea" style="line-height:60px;color:red;">
  <li>Hello World!</li>
</ul>

在这里插入图片描述

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

在这里插入图片描述


版权声明:本文为weixin_45626442原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。