微信小程序> 小程序基础

小程序基础

浏览量:955 时间: 来源:dev_codes

一、原生UI组件

1、文本组件 text  /text  行内组件

属性名

类型

默认值

说明

selectable

Boolean

false

文本是否可选,除了text组件之外,其它组件都无法长按选中

space

String

 

显示连续空格,可选值:ensp、中文字符空格一半大小emsp、中文字符空格大小

Nbsp  根据字体设置的空格大小

decode

Boolean

false

是否解码,可解析         &  '       

2、视图容器组件 view  /view  块级组件

属性名

类型

默认值

说明

hover-class

String

none

指定按下去的样式类。当 hover-class="none" 时,没有点击态效果

hover-stop-propagation

Boolean

false

指定是否阻止本节点的祖先节点出现点击态

hover-start-time

Number

50

按住后多久出现点击态,单位毫秒

hover-stay-time

Number

400

手指松开后点击态保留时间,单位毫秒

3、按钮组件 button  /button  默认独占一行,设置size=mini可以一行多个 (有扩展)

属性名

类型

默认值

说明

size

String

default

按钮的大小 可选值:mini 小尺寸

type

String

default

按钮的样式类型

primary 绿色  default 白色    warn 红色

plain

Boolean

false

按钮是否镂空,背景色透明

disabled

Boolean

false

是否禁用

loading

Boolean

false

名称前是否带 loading 图标

open-typestring微信开放能力

open-type 的合法值

说明最低版本
contact打开客服会话,如果用户在会话中点击消息卡片后返回小程序,可以从 bindcontact 回调中获得具体信息,具体说明1.1.0
share触发用户转发,使用前建议先阅读使用指引1.2.0
getPhoneNumber获取用户手机号,可以从bindgetphonenumber回调中获取到用户信息,具体说明1.2.0
getUserInfo获取用户信息,可以从bindgetuserinfo回调中获取到用户信息1.3.0
launchApp打开APP,可以通过app-parameter属性设定向APP传的参数具体说明1.9.5
openSetting打开授权设置页2.0.7
feedback打开“意见反馈”页面,用户可提交反馈内容并上传日志,开发者可以登录小程序管理后台后进入左侧菜单“客服反馈”页面获取到反馈内容2.1.0

4:input输入框    input /input   默认无边框 (有扩展)

属性名

类型

默认值

说明

value

String

 

输入框的初始内容

type

String

"text"

number  数字输入键盘

idcard    身份证输入键盘

digit    带小数点的数字键盘

password

Boolean

false

是否是密码类型

placeholder

String

 

输入框为空时占位符

disabled

Boolean

false

是否禁用

maxlength

Number

140

最大输入长度,设置为 -1 时不限制最大长度

5、image 图片     image /image   组件默认宽度300px、高度225px(只要有该组件就有宽高)(有扩展)

           src :支持本地/和网络上的图片

           mode :指定图片裁剪、缩放的模式

src

string

 

支持本地/和网络上的图片

 

mode

string

scaleToFill

图片裁剪、缩放的模式

lazy-load

boolean

false

图片懒加载,在即将进入一定范围(上下三屏)时才开始加载

show-menu-by-longpress

boolean

false

开启长按图片显示识别小程序码菜单

  Mode可选值

scaleToFill

缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素

aspectFit

缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。

aspectFill

缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。

widthFix

缩放模式,宽度不变,高度自动变化,保持原图宽高比不变

top

裁剪模式,不缩放图片,只显示图片的顶部区域

bottom

裁剪模式,不缩放图片,只显示图片的底部区域

center

裁剪模式,不缩放图片,只显示图片的中间区域

6、 可滚动视图区域 scroll-view    /scroll-view

使用竖向滚动时,需要给scroll-view一个固定高度,通过 WXSS 设置 height。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。

属性类型默认值必填说明最低版本
scroll-xbooleanfalse允许横向滚动1.0.0
scroll-ybooleanfalse允许纵向滚动1.0.0
upper-thresholdnumber/string50距顶部/左边多远时,触发 scrolltoupper 事件1.0.0
lower-thresholdnumber/string50距底部/右边多远时,触发 scrolltolower 事件1.0.0
scroll-topnumber/string 设置竖向滚动条位置1.0.0
scroll-leftnumber/string 设置横向滚动条位置1.0.0
scroll-into-viewstring 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素1.0.0
scroll-with-animationbooleanfalse在设置滚动条位置时使用动画过渡1.0.0
enable-back-to-topbooleanfalseiOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向1.0.0
enable-flexbooleanfalse启用 flexbox 布局。开启后,当前节点声明了 display: flex 就会成为 flex container,并作用于其孩子节点。2.7.3
bindscrolltouppereventhandle 滚动到顶部/左边时触发1.0.0
bindscrolltolowereventhandle 滚动到底部/右边时触发1.0.0
bindscrolleventhandle 滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}1

Bug & Tip

  1. tip: 基础库 2.4.0以下不支持嵌套textareamapcanvasvideo 组件
  2. tipscroll-into-view 的优先级高于 scroll-top
  3. tip: 在滚动 scroll-view 时会阻止页面回弹,所以在 scroll-view 中滚动,是无法触发 onPullDownRefresh
  4. tip: 若要使用下拉刷新,请使用页面的滚动,而不是 scroll-view ,这样也能通过点击顶部状态栏回到页面顶部

7、滑块视图容器 swiper  /swiper  其中只可放置swiper-item组件,否则会导致未定义的行为。

属性类型默认值必填说明最低版本
indicator-dotsbooleanfalse是否显示面板指示点1.0.0
indicator-colorcolorrgba(0, 0, 0, .3)指示点颜色1.1.0
indicator-active-colorcolor#000000当前选中的指示点颜色1.1.0
autoplaybooleanfalse是否自动切换1.0.0
currentnumber0当前所在滑块的 index1.0.0
intervalnumber5000自动切换时间间隔1.0.0
durationnumber500滑动动画时长1.0.0
circularbooleanfalse是否采用衔接滑动1.0.0
verticalbooleanfalse滑动方向是否为纵向1.0.0
previous-marginstring"0px"前边距,可用于露出前一项的一小部分,接受 px 和 rpx 值1.9.0
next-marginstring"0px"后边距,可用于露出后一项的一小部分,接受 px 和 rpx 值1.9.0
display-multiple-itemsnumber1同时显示的滑块数量1.9.0
skip-hidden-item-layoutbooleanfalse是否跳过未显示的滑块布局,设为 true 可优化复杂情况下的滑动性能,但会丢失隐藏状态滑块的布局信息1.9.0
easing-functionstring"default"指定 swiper 切换缓动动画类型2.6.5
bindchangeeventhandle current 改变时会触发 change 事件,event.detail = {current, source}1.0.0
bindtransitioneventhandle swiper-item 的位置发生改变时会触发 transition 事件,event.detail = {dx: dx, dy: dy}2.4.3
bindanimationfinisheventhandle 动画结束时会触发 animationfinish 事件,event.detail 同上1.9.0

easing-function 的合法值

说明最低版本
default默认缓动函数 
linear线性动画 
easeInCubic缓入动画 
easeOutCubic缓出动画 
easeInOutCubic缓入缓出动画 

change事件 source 返回值

从 1.4.0 开始,change事件增加 source字段,表示导致变更的原因,可能值如下:

  1. autoplay 自动播放导致swiper变化;
  2. touch 用户划动引起swiper变化;
  3. 其它原因将用空字符串表示。

Bug & Tip

  1. tip: 如果在 bindchange 的事件回调函数中使用 setData 改变 current 值,则有可能导致 setData 被不停地调用,因而通常情况下请在改变 current 值前检测 source 字段来判断是否是由于用户触摸引起。

     swiper-item  /swiper-item 仅可放置在swiper组件中,宽高自动设置为100%。

属性类型默认值必填说明最低版本
item-idstring 该 swiper-item 的标识符1.9.0

二、wsxx样式表 (id class :before  nth:child  属性选择器都支持)

   1、支持绝大多数css选择器

   2、自定义属性需要 data-* ,才可以被属性选择器选中

   3、一个手机屏幕被分为750rpx,在iPhone6约等于 1px = 2rpx

  4、@import  wxss外联样式的相对路径;          支持导入外联样式表

  5、app.wxss中样式是全局样式,会作用每一个页面。Page下面的wxss是局部样式表,只作用当前页面,当权重相对时,局部         样式优先

三、数据绑定与事件绑定

  简单的页面可以使用 Page() 构造器进行注册

  1. 数据定义在data对象,页面使用直接用{{text }} ( 属性还是内容都用花括号,支持三元表达式和简单的运算 )
Page({  data: {    text: "This is page data."  },  onLoad: function(options) {    // 页面创建时执行  },  onShow: function() {    // 页面出现在前台时执行  },  onReady: function() {    // 页面首次渲染完毕时执行  },  onHide: function() {    // 页面从前台变为后台时执行  },  onUnload: function() {    // 页面销毁时执行  },  onPullDownRefresh: function() {    // 触发下拉刷新时执行  },  onReachBottom: function() {    // 页面触底时执行  },  onShareAppMessage: function () {    // 页面被用户分享时执行  },  onPageScroll: function() {    // 页面滚动时执行  },  onResize: function() {    // 页面尺寸变化时执行  },  onTabItemTap(item) {    // tab 点击时执行    console.log(item.index)    console.log(item.pagePath)    console.log(item.text)  },  // 事件响应函数  viewTap: function() {    this.setData({      text: 'Set some data for updating view.'    }, function() {      // this is setData callback    })  },  // 自由数据  customData: {    hi: 'MINA'  }})

2、bindtap  触摸事件  (阻止事件冒泡   catchtap )

  view bindtap=”ontap”  /view   

     不支持后面跟小括号传参。事件函数定义在js文件与data平级,第一个形参就是事件对象

3、bindinput  输入框输入事件

    通过事件对象 e.detail.value 拿到输入框最新的值

4、文本框与data数据的同步(小程序没有v-model)

    bindinput监听文本框,e.detail.value获取最新值来赋值

   调用函数this.setData({info: e.detail.value })修改data中的数据

5、事件传参 data-*

     在组件中通过自定义属性传参 data-info=123

    在事件函数中,通过 e.target.dataset.参数名 获取到参数值

四、条件渲染

    1、wx:if=   wx:elif=     wx:else

    2、 block /block 一次需要判断多个标签,可以用block标签包裹,只起包括作用,不会渲染到页面中。只接收控制属性

    3、hidden=“ ” 条件为true时隐藏。相当于dispalay=none

 五、列表渲染

   1、wx:for={{数组名}}   直接通过{{index}} {{item}}就可以获取到索引和值

     ①wx:key=index 用索引做key值

    ②wx:for-item=v  wx:for-index=i 手动指定每项名和索引名

    ③ *this代表每一项本身    wx:key=*this  每一项需要是唯一的字符串或数字

 六、wxs(weixin script)  小程序脚本语言(不支持es56高级语法)官方文档

   ①wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行

   ②wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致

   ③wxs 的运行环境和其他 javascript 代码是隔离的,wxs 中不能调用其他 javascript 文件中定义的函数,也不能调用小程序提供的API

   ④wxs 函数不能作为组件的事件回调。在 iOS 设备上小程序内的 wxs 会比 javascript 代码快 2 ~ 20 倍

   ⑤wxs 遵循了 CommonJS 规范

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎