一、原生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-type | string | 否 | 微信开放能力 |
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-x | boolean | false | 否 | 允许横向滚动 | 1.0.0 |
| scroll-y | boolean | false | 否 | 允许纵向滚动 | 1.0.0 |
| upper-threshold | number/string | 50 | 否 | 距顶部/左边多远时,触发 scrolltoupper 事件 | 1.0.0 |
| lower-threshold | number/string | 50 | 否 | 距底部/右边多远时,触发 scrolltolower 事件 | 1.0.0 |
| scroll-top | number/string | 否 | 设置竖向滚动条位置 | 1.0.0 | |
| scroll-left | number/string | 否 | 设置横向滚动条位置 | 1.0.0 | |
| scroll-into-view | string | 否 | 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素 | 1.0.0 | |
| scroll-with-animation | boolean | false | 否 | 在设置滚动条位置时使用动画过渡 | 1.0.0 |
| enable-back-to-top | boolean | false | 否 | iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向 | 1.0.0 |
| enable-flex | boolean | false | 否 | 启用 flexbox 布局。开启后,当前节点声明了 display: flex 就会成为 flex container,并作用于其孩子节点。 | 2.7.3 |
| bindscrolltoupper | eventhandle | 否 | 滚动到顶部/左边时触发 | 1.0.0 | |
| bindscrolltolower | eventhandle | 否 | 滚动到底部/右边时触发 | 1.0.0 | |
| bindscroll | eventhandle | 否 | 滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY} | 1 |
Bug & Tip
tip: 基础库 2.4.0以下不支持嵌套textarea、map、canvas、video组件tip:scroll-into-view的优先级高于scroll-toptip: 在滚动scroll-view时会阻止页面回弹,所以在scroll-view中滚动,是无法触发onPullDownRefreshtip: 若要使用下拉刷新,请使用页面的滚动,而不是scroll-view,这样也能通过点击顶部状态栏回到页面顶部
7、滑块视图容器 swiper /swiper 其中只可放置swiper-item组件,否则会导致未定义的行为。
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| indicator-dots | boolean | false | 否 | 是否显示面板指示点 | 1.0.0 |
| indicator-color | color | rgba(0, 0, 0, .3) | 否 | 指示点颜色 | 1.1.0 |
| indicator-active-color | color | #000000 | 否 | 当前选中的指示点颜色 | 1.1.0 |
| autoplay | boolean | false | 否 | 是否自动切换 | 1.0.0 |
| current | number | 0 | 否 | 当前所在滑块的 index | 1.0.0 |
| interval | number | 5000 | 否 | 自动切换时间间隔 | 1.0.0 |
| duration | number | 500 | 否 | 滑动动画时长 | 1.0.0 |
| circular | boolean | false | 否 | 是否采用衔接滑动 | 1.0.0 |
| vertical | boolean | false | 否 | 滑动方向是否为纵向 | 1.0.0 |
| previous-margin | string | "0px" | 否 | 前边距,可用于露出前一项的一小部分,接受 px 和 rpx 值 | 1.9.0 |
| next-margin | string | "0px" | 否 | 后边距,可用于露出后一项的一小部分,接受 px 和 rpx 值 | 1.9.0 |
| display-multiple-items | number | 1 | 否 | 同时显示的滑块数量 | 1.9.0 |
| skip-hidden-item-layout | boolean | false | 否 | 是否跳过未显示的滑块布局,设为 true 可优化复杂情况下的滑动性能,但会丢失隐藏状态滑块的布局信息 | 1.9.0 |
| easing-function | string | "default" | 否 | 指定 swiper 切换缓动动画类型 | 2.6.5 |
| bindchange | eventhandle | 否 | current 改变时会触发 change 事件,event.detail = {current, source} | 1.0.0 | |
| bindtransition | eventhandle | 否 | swiper-item 的位置发生改变时会触发 transition 事件,event.detail = {dx: dx, dy: dy} | 2.4.3 | |
| bindanimationfinish | eventhandle | 否 | 动画结束时会触发 animationfinish 事件,event.detail 同上 | 1.9.0 |
easing-function 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| default | 默认缓动函数 | |
| linear | 线性动画 | |
| easeInCubic | 缓入动画 | |
| easeOutCubic | 缓出动画 | |
| easeInOutCubic | 缓入缓出动画 |
change事件 source 返回值
从 1.4.0 开始,change事件增加 source字段,表示导致变更的原因,可能值如下:
autoplay自动播放导致swiper变化;touch用户划动引起swiper变化;- 其它原因将用空字符串表示。
Bug & Tip
tip: 如果在bindchange的事件回调函数中使用setData改变current值,则有可能导致setData被不停地调用,因而通常情况下请在改变current值前检测source字段来判断是否是由于用户触摸引起。
swiper-item /swiper-item 仅可放置在swiper组件中,宽高自动设置为100%。
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| item-id | string | 否 | 该 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() 构造器进行注册
- 数据定义在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 ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。













