【愚公系列】《微信小程序开发解析》007-基础内容组件
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
在微信小程序中,基础内容组件是用于构建用户界面和展示内容的基本元素。这些组件提供了丰富的功能和灵活的布局方式,使开发者能够创建直观、互动和响应迅速的小程序界面。
🚀一、基础内容组件
🔎1.icon组件
微信小程序中的 icon 组件用于显示图标,它内置了一些常用的图标,开发者可以通过设置参数来指定图标的类型、大小、颜色等属性。
🦋1.1 icon 组件参数
- type (String):图标类型,必填。可选值有:
successsuccess_no_circleinfowarnwaitingcanceldownloadsearchclear
- size (Number):图标大小,单位为
px,默认值为23。 - color (String):图标颜色,默认值为
#000000。
🦋1.2 示例代码
☀️1.2.1 WXML 文件
<view class="container">
<icon type="success" size="30" color="#4caf50"></icon>
<icon type="info" size="30" color="#2196f3"></icon>
<icon type="warn" size="30" color="#ff9800"></icon>
<icon type="waiting" size="30" color="#9e9e9e"></icon>
<icon type="cancel" size="30" color="#f44336"></icon>
<icon type="download" size="30" color="#00bcd4"></icon>
<icon type="search" size="30" color="#3f51b5"></icon>
<icon type="clear" size="30" color="#9c27b0"></icon>
</view>
☀️1.2.2 WXSS 文件
/* app.wxss */
.container {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
padding: 20px;
}
icon {
margin: 10px;
}

🦋1.3 解释说明
-
WXML 部分:
- 在
view容器中添加多个icon组件,每个icon组件设置不同的type、size和color参数,以显示不同的图标。 - 通过设置
type参数,指定图标类型,比如success、info、warn等。 - 通过设置
size参数,控制图标的大小,单位为px。 - 通过设置
color参数,控制图标的颜色。
- 在
-
WXSS 部分:
.container类设置为flex布局,使图标在容器中按行排列,并通过flex-wrap: wrap;使图标在一行排满后自动换行。- 通过
margin属性设置图标之间的间距,使布局更加美观。
🦋1.4 常见用途
- 状态指示:使用
icon组件表示操作的结果状态,如成功、失败、警告等。 - 操作按钮:将
icon组件作为按钮图标使用,如搜索、下载、清除等操作。 - 导航图标:在导航栏或选项卡中使用
icon组件,提高用户界面的直观性。
🔎2.progress组件
在微信小程序中,progress 组件用于显示操作的进度,如文件下载、任务完成等。它提供了一些参数来控制进度条的样式和行为。
🦋2.1 progress 组件参数
- percent (Number):进度百分比,取值范围为 0 到 100。
- stroke-width (Number):进度条线的宽度,单位为
px,默认值为6。 - active-color (String):已激活部分的颜色,默认为
#09BB07。 - background-color (String):未激活部分的颜色,默认为
#EBEBEB。 - active (Boolean):是否启用进度条,默认为
true。 - show-info (Boolean):是否显示进度百分比,默认为
false。
🦋2.2 示例代码
☀️2.2.1 WXML 文件
<view class="container">
<progress percent="30" show-info></progress>
<progress percent="60" stroke-width="10" active-color="#4caf50"></progress>
<progress percent="90" stroke-width="14" active-color="#f44336" background-color="#ffffff"></progress>
</view>
☀️2.2.2 WXSS 文件
/* app.wxss */
.container {
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
height: 300px;
}
progress {
width: 80%;
margin-bottom: 20px;
}

🦋2.3 解释说明
-
WXML 部分:
- 在
view容器中添加多个progress组件,每个progress组件设置不同的percent、stroke-width、active-color和background-color参数,以显示不同样式的进度条。 - 通过设置
percent参数,指定进度的百分比,取值范围为 0 到 100。 - 通过设置
stroke-width参数,控制进度条线的宽度。 - 通过设置
active-color和background-color参数,分别控制已激活部分和未激活部分的颜色。 - 设置
show-info参数为true,以显示进度条上的百分比信息。
- 在
-
WXSS 部分:
.container类设置为flex垂直布局,使进度条垂直排列,并在容器内居中显示。progress组件设置宽度为80%,并通过margin-bottom设置进度条之间的间距,使布局更加美观。
🦋2.4 常见用途
- 文件下载进度:显示文件下载进度。
- 任务完成进度:显示任务执行的进度,如上传文件、导出数据等。
- 加载状态指示:在数据加载过程中,显示数据加载的进度。
🔎3.rich-text组件
微信小程序的 rich-text 组件允许开发者展示富文本内容。它能够解析和渲染HTML片段,因此在展示复杂格式的文本时非常有用。
🦋3.1 组件参数介绍
-
nodes:
- 类型: Array | String
- 默认值: []
- 说明: 要展示的HTML节点列表或HTML字符串。
-
space:
- 类型: String
- 默认值: “”
- 说明: 设置
text节点之间的空格。支持的值为ensp、emsp和nbsp。
-
user-select:
- 类型: Boolean
- 默认值: false
- 说明: 设置富文本是否可以被用户选择。
🦋3.2 基本使用示例
☀️3.2.1 示例1:使用 HTML 字符串
<view class="container">
<rich-text nodes="<h1>Hello World</h1><p>This is <b>rich text</b> content.</p>"></rich-text>
</view>

☀️3.2.2 示例2:使用节点数组
<view class="container">
<rich-text nodes="{{nodes}}"></rich-text>
</view>
Page({
data: {
nodes: [
{
name: 'h1',
attrs: {
style: 'color: blue;'
},
children: [{
type: 'text',
text: 'Hello World'
}]
},
{
name: 'p',
attrs: {},
children: [{
type: 'text',
text: 'This is rich text content.'
}]
}
]
}
});

🦋3.3 富文本内容的处理和展示
-
支持的标签:
a,abbr,b,blockquote,br,code,col,colgroup,dd,del,div,dl,dt,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,ul.
-
支持的属性:
class,style,width,height,src,href,alt.
🦋3.4 复杂案例
☀️3.4.1 示例3:嵌套的富文本
<view class="container">
<rich-text nodes="{{nodes}}"></rich-text>
</view>
Page({
data: {
nodes: [
{
name: 'div',
attrs: {
style: 'border: 1px solid #ddd; padding: 10px;'
},
children: [
{
name: 'h2',
attrs: {
style: 'color: red;'
},
children: [{
type: 'text',
text: 'Title'
}]
},
{
name: 'p',
attrs: {},
children: [{
type: 'text',
text: 'This is a paragraph with '
}, {
name: 'b',
attrs: {},
children: [{
type: 'text',
text: 'bold text'
}]
}, {
type: 'text',
text: ' and '
}, {
name: 'i',
attrs: {},
children: [{
type: 'text',
text: 'italic text'
}]
}, {
type: 'text',
text: '.'
}]
}
]
}
]
}
});

🔎4.text组件
微信小程序的 text 组件用于展示单一格式的文本。相比 rich-text 组件,text 组件更加轻量,适用于不需要复杂格式的场景。以下是 text 组件的一些关键参数和相关案例。
🦋4.1 组件参数介绍
-
selectable:
- 类型: Boolean
- 默认值: false
- 说明: 是否支持长按选中复制。
-
space:
- 类型: String
- 默认值: false
- 说明: 显示连续空格。支持的值为
ensp、emsp和nbsp。
-
decode:
- 类型: Boolean
- 默认值: false
- 说明: 是否解码。对
<>&'"进行解码。
🦋4.2 基本使用示例
☀️4.2.1 示例1:基本文本展示
<view class="container">
<text>Hello World</text>
</view>

☀️4.2.2 示例2:可选择的文本
<view class="container">
<text selectable="true">This text can be selected and copied.</text>
</view>

☀️4.2.3 示例3:显示空格
<view class="container">
<text space="nbsp">This text has multiple spaces.</text>
</view>

🦋4.3 复杂案例
☀️4.3.1 示例4:结合样式和解码功能
<view class="container">
<text style="color: blue; font-size: 20px;" decode="true">
This text <b>includes</b> HTML entities.
</text>
</view>

☀️4.3.2 示例5:多行文本与样式
<view class="container">
<text style="white-space: pre-line;">
Line 1
Line 2
Line 3
</text>
</view>

🦋4.4 使用技巧
- 样式调整: 通过
style属性,可以对文本颜色、大小、字体、行高等进行调整,使文本更加符合设计要求。 - 解码功能: 当文本包含HTML实体时,可以使用
decode属性进行解码,确保文本正确显示。 - 连续空格: 通过
space属性,可以控制文本中的空格显示,避免HTML中的空格被自动合并。
🦋4.5 结合其他组件的案例
☀️4.5.1 示例6:结合 view 组件和 text 组件
<view class="container">
<view style="padding: 10px; background-color: #f0f0f0;">
<text style="color: red; font-size: 18px;">Important Notice:</text>
<text>This is a message for all users.</text>
</view>
</view>

🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)