小程序基础[05]-小程序框架基础组件(一)

本文介绍小程序框架中为我们提供的组件,还专门对view、text、image等组件的基本使用进行了说明,还补充了为标签设置样式的几种方式并提供综合案例。

1.0 组件

组件就是控件或者说标签

小程序官方为我们提供了各种各样的组件,按照类型来划分可以分成:视图容器组件基础内容组件表单组件导航组件多媒体组件地图组件画布组件七类30种

小程序中的组件和HTML中的元素差不多,一个组件是指从组件开始标签到结束标签的所有代码,因为平台的差异性所以小程序中的组件可能会被转译为不同端对应的代码,所以在进行小程序开发的时候不能使用除上述组件之外的标签。

组件的定义

❏ 组件是视图层的基本组成单元。
❏ 组件会自带一些功能和微信风格的样式。
❏ 组件通常包括开始和结束标签、修饰该组件的属性以及两个标签中间的内容。

组件的属性

组件可以拥有属性,属性用于对组件进行配置。
组件的属性可以分为所有组件都拥有的共同属性和某些组件才有的特定属性。
组件的属性只能用在开始标签或者是单个自闭合标签身上,不能用于结束标签。
组件中可以设置多个属性,属性具有属性名称和属性值两部分,组件的属性名称都是小写

所有组件都拥有的共同属性

id   组件的唯一标识,保持整个页面唯一。
style   同HTML中的style一致,用来动态设置组件的内联样式。
hidden   组件是否显示,默认所有均显示可通过设置为false隐藏组件。
class   组件的样式类,可以在WXSS中通过类选择器来选择标签设置样式。
bind../catch..   用于绑定逻辑层事件的属性,bind为冒泡,catch为非冒泡。
data-   自定义属性,事件触发时会发送给事件处理函数,函数中可通过datasl来获取对应的值。

2.0 view组件

view组件是视图容器组件的一种,属于块级组件(标签)。

view组件类似于HTML中的div标签,在小程序开发中布局展示,是小程序界面布局中最常用的UI组件,任何一种复杂的布局都可以通过嵌套view组件设置组件的样式来实现。

下面列出view组件的主要属性

hover是否启动点击态,默认为false。
hover-start-time标签按下后多久出现点击态,默认为50毫秒。
hover-stay-time 手指松开后点击态的保留时间,默认为400毫秒。
hover-class 标签被按下去的样式,默认值为none表示没有点击效果。

view组件的使用示例

//.wxml中的代码
<view hover-class='view-hover-class' hover-start-time='1000'>我是第1个View组件</view>
<view hidden='{{true}}'>我是第2个View组件</view>
<view>我是第3个View组件</view>
<view>我是第4个View组件</view>

//.wxss中的代码
view{
  padding: 30rpx;
  text-align: center;
  background: #195;
  margin: 20rpx;
  color: #fff;
}

.view-hover-class
{
  background: #9e2
}

给标签设置样式

❏ 内联样式设置。
❏ 页面样式设置。
❏ 外部样式设置。
❏ 全局样式设置。

给view标签设置样式的四种方式代码示例

//.wxml文件
<!-- 1.0 内联样式 -->
<view style = "width:300px;font-size:40rpx;background:#195;">我是第1个View组件</view>

<!-- 2.0 页面样式文件设置 -->
<view class='pageStyleView'>我是第2个View组件</view>

<!-- 3.0 引入外部样式文件设置 -->
<view class='outPageViewClass'>我是第3个View组件</view>

<!-- 4.0 使用全局样式文件设置 -->
<view class='globalViewClass'>我是第4个View组件</view>
<view>我是第5个View组件</view>

//.wxss文件
@import "../../style/demo.wxss";

.pageStyleView
{
    background: #830;
    color: #fff;
}

view
{
    margin: 30rpx;
}

//demo.wxss文件
.outPageViewClass
{
  background: yellow;
  color: red;
  border: 1px solid #000;
  width: 60%
}

//app.wxss文件
.globalViewClass{
  background: #503;
  color: #fff;
  font-family: "KaiTi";
  font-size: 50rpx;
  width: 90%
}

3.0 image组件

小程序提供了image组件来处理图片,同HTML中的img标签类型。

下面列出image组件的主要属性
binderror 加载图片失败时,发布到 AppService 的事件名。
bindload 加载图片完毕时,发布到 AppService 的事件名。
src 图片资源地址,可以是本地图片的相对路径也可以是URL地址。
mode 图片的缩放和剪裁模式,image组件中供提供了4中缩放和9种剪裁模式。
lazy-load 图片懒加载,布尔类型默认false,只对page与scroll-view下的image有效。

这里列出image组件中mode属性的取值范围

裁剪  top 不缩放图片,只显示图片的顶部区域
裁剪  bottom  不缩放图片,只显示图片的底部区域
裁剪  center  不缩放图片,只显示图片的中间区域
裁剪  left    不缩放图片,只显示图片的左边区域
裁剪  right   不缩放图片,只显示图片的右边区域
裁剪  top left    不缩放图片,只显示图片的左上边区域
裁剪  top right   不缩放图片,只显示图片的右上边区域
裁剪  bottom left 不缩放图片,只显示图片的左下边区域
裁剪  bottom right    不缩放图片,只显示图片的右下边区域
缩放  widthFix    宽度不变,高度自动变化,保持原图宽高比不变
缩放  scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
缩放  aspectFit   保持纵横比缩放图片,使图片的长边能完全显示。也就是说,可以完整地将图片显示出来。
缩放  aspectFill  保持纵横比缩放图片,只保证图片短边能完全显示。图片通常只在水平或垂直方向是完整的。

注意:image组件默认宽度300px、高度225px ,二维码/小程序码图片不支持长按识别。

4.0 text组件

text组件用于文本内容的展示。

下面列出text组件的主要属性
decode 是否解码。
selectable 文本是否可选。
space 显示连续空格的方式,可选值有ensp、emsp和nbsp[0.5 | 1 | 自适应]

text组件注意点说明

[01] text组件属于内联元素
[02] text组件的内部只能嵌套text标签
[03] 小程序中只有text组件支持长按选中

这里给出text组件使用示例

<text>我是text标签01\n</text>
<text selectable='true'>我是text标签02\n</text>
<text decode='true'>我是text标签03&nbsp;嘻嘻\n</text>

<text decode='false'>解码&nbsp;嘻嘻&nbsp;(空格) &lt;(小于) &gt;(大于)
 &amp;(&) &apos;(') &ensp;(半角空格) &emsp;(全角空格)\n</text>

<text decode='{{false}}'>解码&nbsp;嘻嘻&nbsp;(空格) &lt;(小于) &gt;(大于)
&amp;(&) &apos;(') &ensp;(半角空格) &emsp;(全角空格)\n</text>

设置让标签隐藏的N中方式

wx:if 设置为true则显示(懒加载的)
display 设置为none,不占位也不显示
visibility 设置为hidden,占位但是不显示
hidden 默认不设置该属性那么就是显示的 不占位也不显示

<text hidden='true'>我是text标签05\n</text>
<text style='display:none;'>我是text标签06\n</text>
<text wx:if='{{true}}'>我是text标签07\n</text>
<text style='visibility:hidden'>我是text标签08\n</text>

5.0 综合案例

这里给出综合案例的目标效果和实现代码

//wxml结构文件的内容
<view class='info-view'>
<view class='content info-view-left'>
<text class='info-name'>杨勇嘻哈</text>
<image class='info-edit' src='../../images/编辑.png' bindtap='editClick'></image>
<text class='info-description'>梧州学院,定制您的成功人生。</text>

</view>
<view class='content info-view-right'>
<image src='https://wx.qlogo.cn/mmopen/vi_324a6p....Yd2FZVJSw/132'></image>
</view>
</view>

//wxss样式文件的内容
.info-view
{
  width: 100%;
  height: 210rpx;
  line-height: 220rpx;
  background: #000;
}

.content{
  top: 30rpx;
  height: 150rpx;
  line-height: 150rpx;
  position: absolute;
  color: #fff;
}

.info-view-left
{
  left: 40rpx;
  width: 400rpx;
}

.info-view-right
{
  right: 40rpx;
  width: 150rpx;
}

.info-name
{
  display: block;
  width: 200rpx;
  height: 100rpx;
  line-height: 100rpx;
  font-size: 45rpx;
}

.info-edit
{
  display: block;
  width: 50rpx;
  height: 50rpx;
  position: absolute;
  left: 220rpx;
  top: 25rpx;
}

.info-description
{
  display: block;
  height: 50rpx;
  line-height: 50rpx;
  font-size: 30rpx;
}

.info-view-right image
{
  width: 120rpx;
  height: 120rpx;
  border-radius: 20rpx;
  margin-top: 15rpx;
  margin-left: 15rpx;
}

6.0 第三方UI组件库介绍

wx-charts [stars 2500+]
微信小程序图表charts组件

iview-weapp [stars 2400+]
高质量的微信小程序 UI 组件库
官网和文档地址(https://weapp.iviewui.com/)

vant-weapp [stars 6500+]
轻量、可靠的小程序 UI 组件库。
官网和文档地址(https://youzan.github.io/vant-weapp/#/intro)

wux-weapp[stars 2000+]
微信小程序自定义 UI 组件
官网和文档地址(https://wux-weapp.github.io/wux-weapp-docs/#/list)

weui-wxss [stars 7000+]
WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,包含button、cell、dialog、 progress、 toast、article、icon等各式元素。
官网和文档地址(https://weui.io/)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    X先生_未知数的X阅读 15,960评论 3 119
  • 浮云一别后,流水十年间 倘若重逢会是怎样一种情景 我无法想象 只是我变得安静 也许还会心跳 却不再像那只惊慌的小鸟...
    陈锦辉阅读 141评论 0 1
  • 笑来老师的《通往财富自由之路》的专栏第一季本周就结束了,就像大学毕业时一样,竟然有种恋恋不舍的感觉,还好我们有第二...
    一直践行的猫阅读 242评论 0 2
  • 夏静秀回家的动静终于引起了她母亲的注意,母亲向黎旭明和一枝花告了声罪,起身往家中走,看到夏静秀缩头缩脑的往外面瞧的...
    申学兵阅读 263评论 0 3
  • 总结:除张学良点评迟到未交红包、林熠未交作业未交红包外,其余情况正常。
    Gentlewolf96阅读 200评论 2 3