微信小程序第四章到第六章总结

第四章

4.1 组件的定义及属性


组件是页面视图层(WXML)的基本组成单元,组件组合可以构建功能强大的页面构。小程序框架为开发者提供了容器视图、基础内容、表单、导航、多媒体、地图、画开放能力等8类(30多个)基础组件。
每一个组件都由一对标签组成,有开始标签和结束标签,内容放置在开始标签和结束签之间,内容也可以是组件。组件的语法格式如下:
<标签名 属性名=”属性值”>内容…</标签名 >
组件通过属性来进一步细化。不同的组件可以有不同的属性,但它们也有一些共用性,如id、class、style、hidden、data-*、bind */catch*等。

■id 组件的唯一表示,保持整个页面唯一,不常用。
class 组件的样式类,对应WXSS 中定义的样式。
syle 组件的内联样式,可以动态设置内联样式。
hidden 组件是否显示,所有组件默认显示。
data-*自定义属性,组件触发事件时,会发送给事件处理函数。事件处理函数可以通过传入参数对象的 currentTarget. dataset 方式来获取自定义属性的值。

bind*/catch* 组件的事件,绑定逻辑层相关事件处理函数。


4.2 容器视图组件


容器视图组件是能容纳其他组件的组件,是构建小程序页面布局的基础组件

1 view

view 组件是块级组件,没有特殊功能,主要用于布局展示,相当于HTML中的div,是布局中最基本的用户界面(User Interface,UI)组件,通过设置 view的 CSS 属性可以实现各种复杂的布局。

2 scroll- view

通过设置scroll-view 组件的相关属性可以实现滚动视图的功能

 (1)在使用竖向滚动时,如果需要给 scroll-view 组件设置一个固定高度,可以通过WXSS设置 height 来完成。
(2)请勿在scroll-view组件中使用 textarea、map、canvas、video 组件。
scroll -into-view 属性的优先级高于 scroll -top。(3)
(4)由于在使用 scro1l-view组件时会阻止页面回弹,所以在scroll-view组件滚动时无法触发 onPullDownRefresh。
(5)如果要实现页面下拉刷新,请使用页面的滚动,而不是设置 scrol-view 组件。这样做,能通过单击顶部状态栏回到页面顶部

3 swiper


swiper 组件可以实现轮播图、图片预览、滑动页面等效果。一个完整的swiper 组f<swiper/>和<swiper -item/>两个标签组成,它们不能单独使用。<swiper/>中只能放一个或多个<swiper -item/>,若放置其他组件则会被删除;<swiper-item/>内部可以置任何组件,默认宽高自动设置为100%。

4.3基础内容组件

包括icon、text和 progress,主要用于在视图页面中展示图标、文本和进条等信息。

1 icon


icon 组件即图标组件,通常用于表示一种状态,如success、info、warn、waiting、cancd等。其属性如表4-4所示

 2 text

text 组件用于展示内容,类似HTML中的<span>,text 组件中的内容支持长按选中,支持转义字符“\”,属于行内元素。

案例代码
 <block wx:for="{
  {x}}" wx:for-item="x">
   <view class="aa">
   <block wx:for="{
  {25-x}}" wx:for-item="y">
    <text decode="{
  {true}}" space="{
  {true}}">&nbsp;</text>
  </block>
     <block wx:for="{
  {y}}" wx:for-item="y">
     <block wx:if="{
  {y<=2*x-1}}">
      <text>*</text>
     
    
     </block>
   </block>
   </view>
 </block>
 <block wx:for="{
  {x}}" wx:for-item="x">
   <view class="aa">
   <block wx:for="{
  {19+x}}" wx:for-item="x">

     <text decode="{
  {true}}" space="{
  {true}}">&nbsp;</text>
   </block>
   <block wx:for="{
  {y}}" wx:for-item="y">
   <block wx:if="{
  {y<=11-2*x}}">
   <text>*</text>
   </block>
   </block>
   </view>
  
 </block>

js代码

Page({
  data: {
  x:[1,2,3,4,5],
  y:[1,2,3,4,5,6,7,8,9]
  }
  })
 

效果 

 4 pogress

peogress组件用于显示进度状态,如资源加载、用户资料完成度、媒体资源播放进度等poges组件属于块级元素

表单组件 

表单组件的主要功能是收集用户信息,并将这些信息传递给后台服务器,实现小程序与用户之间的沟通。表单组件不仅可以放置在<form/>标签中使用,还可以其他组件混合使用。

1 button

button 组件用来实现用户和应用之间的交互,同时按钮的颜色起引导作在一个程序中一个按钮至少有3种状态:默认点击(default)、建议点击(pi击(warn)。在构建项目时,应在合适的场景使用合适的按钮,当<buton><裹时,可以通过设置form-type 属性来触发表单对应的事件。button组件的属所示。

 案例代码

在wxml输入

 <button type="default">type:default</button>
 <button type="primary">type:primary</button>
 <button type="warn">type:warn</button>
 <button type="default" bindtap='buttonSize' size="{
  {size}}">改变size</button>
 <button type="default" bindtap='buttonPlain' plain="{
  {plain}}">改变plain</button>
 <button type="default" bindtap='buttonLoading' loading="{
  {loading}}">改变loading显示</button>

在js中输入

Page({
  data: {
    size:'default',
    plain:'false',
    loading:'false'
  },
  buttonSize:function(){
    if(this.data.size=="default")
    this.setData({size:'mini'})
    else
    this.setData({size:'default'})
  },
  buttonPlain:function(){
    this.setData({plain:!this.data.plain})
  },
  buttonLoading:function(){
    this.setData({loading:!this.data.loading})
  }
  })

效果

2 radi0

单选框用来从一组选项中选取一个选项。在小程序中,单选框由<radio-group/>(单项选择器)和<radio/>(单选项目)两个组件组合而成,一个包含多个<radio/>的<radio-group/>表示一组单选项,在同一组单选项中<radio/>是互斥的,当一个按钮被选中后,之前选中的按钮就变为非选。

 3 checkbox

复选框用于从一组选项中选取多个选项,小程序中复选框由<checkbox-group/>(多项选择器)和<checkbox/>(多选项目)两个组件组合而成。一个<checkbox-grup/>表示一组选项,可以在一组选项中选中多个选项。

4 switch

switch组件的作用类似开关选择器

5 slider

可以通过滑动来设置相应的slider 组件为滑动选择器值

6 picker

picker组件为滚动选择器,当用户点击picker组件时,系统从底部弹出选择器供用户选择。picker组件目前支持5种选择器,分别是:selector(普通选择器)、multiSelector(多列选择器)、time(时间选择器)、date(日期选择器)、region(省市选择器)。

1.普通选择器

普通选择器(mode =selector)的属性如表4-12所示。

2.多列选择器

多列选择器(mode=multiSelector)允许用户从不同列中选择不同的选择项,其选项是二维数组或数组对象。

 3.时间选择器、日期选择器

时间选择器(mode=time)可以用于从提供的时间选项中选择相应的时间

4.省市选择器

省市选择器(mode=region)是小程序的新版本提供的选择快速地区的组件

7 picker-view 

概念:picker-view组件为嵌入页面的滚动选择器。相对于picker组件,picker-view组件的列的个数和列的内容由用户通过<picker-view-column/ >自定义设置。

案例
<view>当前日期:{
  {year}}年{
  {month}}月{
  {day}}日</view >
<picker-view indicator-style="height:50px;" style ="width:100%; height:300px;"
 value ="{
  {value}}" bindchange ="bindchange">
 <picker-view-column>
<view wx:for="{
  {years}}"style="line-height:50px">{
  {item}}年</view>
</picker-view-column>
<picker-view-column>
<view wx:for="{
  {months}}" style ="line-height:50px">{
  {item}}月</view>
</picker-view-column>
<picker-view-column>
<view wx:for="{
  {days}}" style="line-height:50px">{
  {item}}日</view>
</picker-view-column>
</picker-view>
const date =new Date()
const years=[]
const months=[]
const days=[]
//定义年份
for(let i=1900;i<=2050;i++){
years.push(i)
}
//定义月份
for(let i=1;i<=12;i++){
months.push(i)
}
//定义日期
for(let i=1;i<=31;i++){
days.push(i)
}
Page({
data:{
years:years,
months:months,
days:days,
year:date.getFullYear(),
month:date.getMonth()+1,day:date.getDate(),value:[118,0,0],
},
//定位到2018年1月1日
bindChange:function(e){
const val =e.detail.value 
console.log(val);
this.setData({
year:this.data.years[val[0]],
month:this.data.months[val[1]],
day:this.data.days[val[2]]
})
}
})
效果

8 input

input组件为输入框,用户可以输入相应的信息

 9 textarea

textarea组件为多行输入框组件,可以实现多行内容的输入

 10  laber

概念:label组件为标签组件,用于提升表单组件的可用性。label组件支持使用for属性找到对应的id,或者将控件放在该标签下,当点击label组件时,就会触发对应的控件。for属性的优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。

 11 form

概念:form组件为表单组件,用来实现将组件内的用户输入信息进行提交。当<form/ >表单中formType为submit的<button/ >组件时,会将表单组件中的value值进行提交。

4.5 多媒体组件

多媒体组件包括image(图像)、audio(音频)、video(视频)、camera(相机)组件,使用这些组件,可以让页面更具有吸引力。

1 image

image组件为图像组件,与HTML中的 <img/ >类似,系统默认image组件的宽度为300 px、高度为2250 px, 

1.缩放模式
scaleToFill不保持纵横比缩放图片,使图片的宽高完全拉伸至填满image元素。
aspectFit保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以将图片完整地显示出来。
aspectFill保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,在另一个方向将会发生截取。

widthFix宽度不变,高度自动变化,保持原图宽高比不变

 2.裁剪模式


■ top不缩放图片,只显示图片的顶部区域。
■ bottom不缩放图片,只显示图片的底部区域。
■ center不缩放图片,只显示图片的中间区域。
■ left不缩放图片,只显示图片的左边区域。
■ right不缩放图片,只显示图片的右边区域。
■ top left不缩放图片,只显示图片的左上边区域。
■ top right不缩放图片,只显示图片的右上边区域。

■ bottom left不缩放图片,只显示图片的左下边区域。
■ bottom right不缩放图片,只显示图片的右下边区域。

2 audio

audio组件用来实现音乐播放、暂停等

3 video

video组件用来实现视频的播放、暂停等。视频的默认宽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值