官方文档
概述
uni-app提供了一系列基础组件,使用它们可以使界面风格统一,同时,不推荐使用HTML组件
原因:如果开发者写了div等标签,编译到非h5平台会被编译器转换为view标签,使用内置基础组件可以方便管理代码,并且可以通过基础组件开发扩展组件
text文本组件
属性说明
| 属性名 | 类型 | 默认值 | 说明 | 平台差异说明 |
| selectable |
Boolean |
false |
文本是否可选 |
|
| space |
String |
|
显示连续空格 |
App、H5、微信小程序 |
| decode |
Boolean |
false |
是否解码 |
App、H5、微信小程序 |
space 值说明
| 值 | 说明 |
| ensp |
中文字符空格一半大小 |
| emsp |
中文字符空格大小 |
| nbsp |
根据字体设置的空格大小 |
- 默认不能选中 <text selectable>唱跳Rap篮球{{name}}</text>
- 默认一行 view包裹<view><text selectable>唱跳Rap篮球{{name}}</text></view>
- space 显示连续空格 ensp显示一半空格 emsp显示设置的所有空格 nbsp显示一个空格
- decode是否解码
<text> 组件内只支持嵌套 <text>,不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。
- 支持
\n 方式换行。
- decode 可以解析的有
< > & '    。
- 在app-nvue下,只有
<text>才能包裹文本内容。无法在<view>组件包裹文本。
- 如果使用
<span> 组件编译时会被转换为 <text>。
view组件
| 属性名 | 类型 | 默认值 | 说明 |
| hover-class |
String |
none |
指定按下去的样式类。当 hover-class="none" 时,没有点击态效果 |
| hover-stop-propagation |
Boolean |
false |
指定是否阻止本节点的祖先节点出现点击态 |
| hover-start-time |
Number |
50 |
按住后多久出现点击态,单位毫秒 |
| hover-stay-time |
Number |
400 |
手指松开后点击态保留时间,单位毫秒 |
<view class="box" hover-class="box-active">
<!-- hover-stop-propagation阻止冒泡 -->
<view class="box1" :hover-start-time="2000" :hover-stay-time="2000" hover-class="box1-active" hover-stop-propagation></view>
</view>
button按钮组件
属性说明
| 属性名 | 类型 | 默认值 | 说明 | 生效时机 | 平台差异说明 |
| size |
String |
default |
按钮的大小 |
|
|
| type |
String |
default |
按钮的样式类型 |
|
|
| plain |
Boolean |
false |
按钮是否镂空,背景色透明 |
|
|
| disabled |
Boolean |
false |
是否禁用 |
|
|
| loading |
Boolean |
false |
名称前是否带 loading 图标 |
|
App-nvue 平台,在 ios 上为雪花,Android上为圆圈 |
| form-type |
String |
|
用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件 |
|
|
| open-type |
String |
|
开放能力 |
|
|
| hover-class |
String |
button-hover |
指定按钮按下去的样式类。当 hover-class="none" 时,没有点击态效果 |
|
App-nvue 平台暂不支持 |
| hover-start-time |
Number |
20 |
按住后多久出现点击态,单位毫秒 |
|
|
| hover-stay-time |
Number |
70 |
手指松开后点击态保留时间,单位毫秒 |
|
|
| app-parameter |
String |
|
打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 |
|
微信小程序、QQ小程序 |
| hover-stop-propagation |
boolean |
false |
指定是否阻止本节点的祖先节点出现点击态 |
|
微信小程序 |
| lang |
string |
'en' |
指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。 |
|
微信小程序 |
| session-from |
string |
|
会话来源,open-type="contact"时有效 |
|
微信小程序 |
| send-message-title |
string |
当前标题 |
会话内消息卡片标题,open-type="contact"时有效 |
|
微信小程序 |
| send-message-path |
string |
当前分享路径 |
会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 |
|
微信小程序 |
| send-message-img |
string |
截图 |
会话内消息卡片图片,open-type="contact"时有效 |
|
微信小程序 |
| show-message-card |
boolean |
false |
是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,open-type="contact"时有效 |
|
微信小程序 |
| @getphonenumber |
Handler |
|
获取用户手机号回调 |
open-type="getPhoneNumber" |
微信小程序 |
| @getuserinfo |
Handler |
|
用户点击该按钮时,会返回获取到的用户信息,从返回参数的detail中获取到的值同uni.getUserInfo |
open-type="getUserInfo" |
微信小程序 |
| @error |
Handler |
|
当使用开放能力时,发生错误的回调 |
open-type="launchApp" |
微信小程序 |
| @opensetting |
Handler |
|
在打开授权设置页并关闭后回调 |
open-type="openSetting" |
微信小程序 |
| @launchapp |
Handler |
|
打开 APP 成功的回调 |
open-type="launchApp" |
微信小程序 |
- 注1:
button-hover 默认为 {background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}
open-type="launchApp"时需要调起的APP接入微信OpenSDK详见
size 有效值
| 值 | 说明 |
| default |
默认大小 |
| mini |
小尺寸 |
type 有效值
| 值 | 说明 |
| primary |
微信小程序、360小程序为绿色,App、H5、百度小程序、支付宝小程序、快应用为蓝色,字节跳动小程序为红色,QQ小程序为浅蓝色。如想在多端统一颜色,请改用default,然后自行写样式 |
| default |
白色 |
| warn |
红色 |
form-type 有效值
| 值 | 说明 |
| submit |
提交表单 |
| reset |
重置表单 |
open-type 有效值
| 值 | 说明 | 平台差异说明 |
| feedback |
打开“意见反馈”页面,用户可提交反馈内容并上传日志 |
App、微信小程序、QQ小程序 |
| share |
触发用户转发 |
微信小程序、百度小程序、支付宝小程序、字节跳动小程序、QQ小程序 |
| getUserInfo |
获取用户信息,可以从@getuserinfo回调中获取到用户信息,包括头像、昵称等信息 |
微信小程序、百度小程序、QQ小程序 |
| contact |
打开客服会话,如果用户在会话中点击消息卡片后返回应用,可以从 @contact 回调中获得具体信息 |
微信小程序、百度小程序 |
| getPhoneNumber |
获取用户手机号,可以从@getphonenumber回调中获取到用户信息 |
微信小程序、百度小程序、字节跳动小程序、支付宝小程序 |
| launchApp |
打开APP,可以通过app-parameter属性设定向APP传的参数 |
微信小程序、QQ小程序 |
| openSetting |
打开授权设置页 |
微信小程序、百度小程序 |
| getAuthorize |
支持小程序授权 |
支付宝小程序 |
| contactShare |
分享到通讯录好友 |
支付宝小程序 |
| lifestyle |
关注生活号 |
支付宝小程序 |
| openGroupProfile |
呼起QQ群资料卡页面,可以通过group-id属性设定需要打开的群资料卡的群号,同时manifest中必须配置groupIdList |
QQ小程序基础库1.4.7版本+ |
注意
- 在小程序中,开发者可以登录 微信小程序管理后台 、QQ小程序后台后,进入菜单“客服反馈”页面获取反馈内容。
- 在 App 中,开发者登录 DCloud开发者中心 后点击应用名称,进入左侧菜单“用户反馈”页面获取反馈内容。
- 点击 share 分享按钮时会触发 onShareAppMessage
- 支付宝小程序平台,获取用户手机号时,建议先通过条件编译的方式,调用支付宝原生API,参考
<template>
<view>
<text>{{btn}}</text>
<button @click="set_btn()" size="default" type="primary" plain loading>按钮</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
btn: ""
}
},
methods: {
set_btn(){
this.btn = "爱了爱了"
}
}
}
</script>
image图片组件
图片。
| 属性名 | 类型 | 默认值 | 说明 | 平台差异说明 |
| src |
String |
|
图片资源地址 |
|
| mode |
String |
'scaleToFill' |
图片裁剪、缩放的模式 |
|
| lazy-load |
Boolean |
false |
图片懒加载。只针对page与scroll-view下的image有效 |
微信小程序、App、百度小程序、字节跳动小程序 |
| fade-show |
Boolean |
true |
图片显示动画效果 |
仅App-nvue 2.3.4+ Android有效 |
| webp |
boolean |
false |
默认不解析 webP 格式,只支持网络资源 |
微信小程序2.9.0 |
| show-menu-by-longpress |
boolean |
false |
开启长按图片显示识别小程序码菜单 |
微信小程序2.7.0 |
| @error |
HandleEvent |
|
当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: 'something wrong'} |
|
| @load |
HandleEvent |
|
当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:'图片高度px', width:'图片宽度px'} |
|
Tips
<image> 组件默认宽度 300px、高度 225px;app-nvue平台,暂时默认为屏幕宽度
src 仅支持相对路径、绝对路径,支持 base64 码;
- 页面结构复杂,css样式太多的情况,使用 image 可能导致样式生效较慢,出现 “闪一下” 的情况,此时设置
image{will-change: transform} ,可优化此问题。
- 自定义组件里面使用
<image>时,若 src 使用相对路径可能出现路径查找失败的情况,故建议使用绝对路径。
- webp格式的图片在Android上是内置支持的。iOS上不同平台不一样,具体如下:app-vue下,iOS不支持;app-nvue下,iOS支持;微信小程序2.9.0起,iOS支持。
- svg 格式的图片在不同的平台支持情况不同。具体为:app-nvue 不支持 svg 格式的图片,小程序上只支持网络地址。
mode 有效值:
mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式。
| 模式 | 值 | 说明 |
| 缩放 |
scaleToFill |
不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 |
| 缩放 |
aspectFit |
保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。 |
| 缩放 |
aspectFill |
保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。 |
| 缩放 |
widthFix |
宽度不变,高度自动变化,保持原图宽高比不变 |
| 缩放 |
heightFix |
高度不变,宽度自动变化,保持原图宽高比不变 微信小程序 2.10.3 支持 |
| 裁剪 |
top |
不缩放图片,只显示图片的顶部区域 |
| 裁剪 |
bottom |
不缩放图片,只显示图片的底部区域 |
| 裁剪 |
center |
不缩放图片,只显示图片的中间区域 |
| 裁剪 |
left |
不缩放图片,只显示图片的左边区域 |
| 裁剪 |
right |
不缩放图片,只显示图片的右边区域 |
| 裁剪 |
top left |
不缩放图片,只显示图片的左上边区域 |
| 裁剪 |
top right |
不缩放图片,只显示图片的右上边区域 |
| 裁剪 |
bottom left |
不缩放图片,只显示图片的左下边区域 |
| 裁剪 |
bottom right |
不缩放图片,只显示图片的右下边区域 |
来源:https://www.cnblogs.com/fwjlucifinil/p/13558871.html |