Taro小程序·常用组件与API
组件
- 视图】view
<view class="" id="标识符" hidden="true隐藏" data-custom="自定义数据属性" hover-class="被点击时样式类" hover-stop-propagation="阻止冒泡到父元素" hover-start-time="123长按触发点击事件时间" hover-stay-time="123点击后保持高亮时间" animation="{{动画效果}} "> 这是一个视图容器Ï </view>
- 滚动区域】scroll-view
<scroll-view 、 scrollTop="竖向滚动条位置" scroll-x="true横向滚动 upper-threshold="50" bindscrolltoupper="on距顶部触发事件配合upper-threshold" lower-threshold="50" bindscrolltolower="on距底部触发事件配合lower-threshold" enable-back-to-top="true通过快速滑动返回顶部" scroll-into-view="id滚动到相应位置" scroll-with-animation="true滚动时动画过渡" bindscroll="onScroll滚动时触发事件" "></scroll-view>
- 轮播图】swiper
<swiper indicator-dots="true显示指示点" autoplay="true自动切换" interval="123自动切换时间间隔" duration="123滑动动画时长" circular="true首尾无限循环" vertical="true竖向滚动" current="当前所在滑块的index" previous-margin="px可见滑块间距" next-margin="px可见滑块间距" display-multiple-items="同时显示的滑块数" bindchange="on滑块时触发事件" ></swiper>
- 文本】text
1.<text selectable="true可选中文本" space="true保留空格和换行" decode="true特殊字符解码" size="12字体大小" color="字体颜色" bold="加粗字体" line-clamp="12显示行数" bindtap="on点击文本" ></text>
- 图标】icon
<icon type=”图标的类型” size=”rpx图标大小” color=”图标颜色” hover-class=”点击时图标样式类” hover-stop-propagation=”true点击时阻止事件” hover-start-time=”123点击时触发时间间隔” hover-stay-time=”123点击时触发时间间隔” bindtap=”on点击时触发事件” ></icon>
- 进度条】progress
<progress percent="进度百分比(0-100)" stroke-width="进度条的颜色" active="激活状态下进度条动画" active-mode="动画模式backwards/forwards" backgroundColor="进度条的背景颜色" border-radius="进度条的边框圆角大小rpx" show-info="显示进度条右侧进度百分比" font-size="进度百分比的字体大小rpx" bindactiveend="动画完成时触发事件" ></progress>
- 按钮】button
<button type=”按钮样式 primary/default/warn” size=”按钮大小 default/mini” disabled=”禁用按钮” open-type=”开放能力 打开授权、分享、联系客服” bindtap=”on点击事件” hover-class=”按钮按下时样式类” > </button>
- 复选框】checkbox
<checkbox checked=”true初始选中状态” value=”任意类型的值” disabled=”禁用” color=”选中状态的颜色” bindchange=”on状态改变事件” ></checkbox>
- 输入框】input
<input bindconfirm=”on绑定输入框输入事件” maxlength=”123最大输入长度” bindblur=”on输入框失去焦点事件” bindconfirm=”on输入完成事件” />
- 开关】switch
<switch checked=”true开关状态” type=”样式类型switch/checkbox” color=”开关颜色” disabled=”禁用开关” bindchange=”on状态改变事件” ></switch>
- 单选框】radio
<radio value=”任意类型的值” checked=”true选择状态” color=”选择颜色” disabled=”禁用开关” bindchange=”on状态改变事件” >Radio</radio>
- 多行文本】textarea
<Textarea value=”内容” placeholder=”占位符文本” disabled=”禁用文本” maxlength=”最大输入长度” auto-height=”内容自动调整高度” bindinput=”on绑定输入事件” bindblur=”on失去焦点事件” bindconfirm=”on完成输入事件” ></Textarea>
- 表单标签】label
<Label for=”input-id”>表单标签</Label>
- 选择器】picker
<Picker mode=”模式selector/time/date/multiSelector” range=”列表数组” range-key=”选择器显示range数组字段” value=”初始值” start=”开始” end=”结束” bindchange=”on选择器值改变事件” disabled=”禁用” ></Picker>
- picker-view】滚动选择器视图
<picker-view value=”数组,初始选择的值” indicator-style=”选择器指示器的样式” indicator-class=”选择器指示器自定义类名” mask-style=”蒙层样式,弹出时背景效果” bindchange=”on绑定选择器值改变事件” animation=”控制显示和隐藏的动画效果” bindpickstart=”on开始滚动事件” bindpickend=”on结束滚动事件” ></picker-view>
- 滑动选择器】slider
<slider value=”123初始值” min=”123最小值” max=”123最大值” step=”123滑块步进值,拖动滑块时的增量” disabled=”禁用滑块” activeColor=”已选择部分的颜色” block-size=”123按钮大小” block-color=”按钮颜色” show-value=”true显示滑块当前值” bindchange=”滑块值改变事件” ></slider>
- 表单】form
用于包裹表单元素,监听form事件
<form report-submit=”true” bindsubmit=”绑定表单提交事件” bindreset=”绑定表单重置事件” bindbeforeunload=”绑定表单在被卸载前触发的事件” report-submit=”true” report-submit-timeout=”123设置formId 的上报超时时间” bindunsubmit=”绑定表单提交被阻止事件” bindreset=”绑定表单重置事件” ></form>
- 音频播放器】audio
<audio src=”http音频URL” controls=”true显示音频播放控件” loop=”true循环播放” autoplay=”true自动播放” poster=”http封面图” name=”音频名称,显示在播放器上” author=”音频作者信息” bindplay=”on音频播放” bindpause=”on暂停事件” ></audio>
- 图片】image
<image src=”http图片的URL” mode=”图片的显示模式 scaleToFill、aspectFit、aspectFill、widthFix、top、bottom、center、left、right、top left、top right、bottom left、bottom right” lazy-load=”true图片是否懒加载” default-src=”http加载失败时显示的默认图片URL” bindload=”on图片加载成功事件” binderror=”on加载失败事件” bindtap=”on绑定图片点击事件” width=”宽度” height=”高度” ></image>
- 视频播放器】video
<video src=”http视频URL” controls=”true显示视频播放控件” loop=”true循环播放” autoplay=”true自动播放” poster=”http封面图” initial-time=”123初始播放位置(秒)” bindended=”播放结束事件” author=”音频作者信息” bindplay=”on播放事件” bindpause=”on暂停事件” ></video>
- 显示地图】map
- 绘图画布】canvas
- 模板】template
- 广告】ad
- 自定义组件】custom-component
- 弹出层组件
<PageContainer show={显示组件} overlay={遮挡层} round={弧形} onClickOverlay={() => tap(‘点击遮挡’))}> <View> </View > </PageContainer >
API属性
- 去掉导航
./index.config.ts export default definePageConfig({ navigationStyle: 'custom' //去掉导航 })
- 下拉刷新
./index.config.ts export default definePageConfig({ enablePullDownRefresh: true,//开启下拉刷新 "backgroundTextStyle": "dark" //顶部三个点闪烁的动画就不会显示 }) //页面设置函数触发下拉刷新 usePullDownRefresh(() => { //下拉刷新时的回调 Taro.startPullDownRefresh()//触发下拉刷新动画 Taro.stopPullDownRefresh()//停止当前页面下拉刷新。 })
- 触底事件刷新
export default definePageConfig({ onReachBottomDistance: 50,//刷新触底事件 }) //页面设置函数 刷新触底事件 useReachBottom(() => { /// })
- 设置页面名
./index.config.ts export default definePageConfig({ navigationBarTitleText: '首页', })
- 导入子组件
./index.config.ts export default definePageConfig({ usingComponents: { "Head": "../../components/head/index" } })
- 获取小程序胶囊
Taro.getMenuButtonBoundingClientRect() // 返回数据 let rect= { top: 26, bottom: 58, left: 278, right: 365, width: 87, height: 32 }
- 浏览图片
Taro.previewImage({ current: url, // 当前显示图片的http链接 urls: listData[index].image // 需要预览的图片http链接列表 })
- 网络请求
Taro.request({ url: '/getQuickLogin', data: { blok: 'weixin', code: '1234' }, method:'GET',//POST header: { 'content-type': 'application/json' }, success: function (res) { console.log(res.data) } }) } else { console.log('登录失败!' + res.errMsg) }
- 接收路由跳转传参
//生命周期useLoad 接收 useLoad((res: any) => { console.log('Page publish.', res) })
- 缓存
Taro.setStorageSync(‘key’, ‘value’)
let str =Taro.getStorageSync(‘key’)
- 开启转发功能
//开启转发 Taro.showShareMenu({ withShareTicket: true, showShareItems: ['shareAppMessage', 'shareTimeline'], }) //QQ开启转发 Taro.showShareMenu({ showShareItems: ['qq', 'qzone', 'wechatFriends', 'wechatMoment'], }) //必须 useShareAppMessage(() => { return { title: "生活墙-谈吐-全国高校论坛", path: "/pages/talk/index", imageUrl:'' }; })
- 禁止穿透滚动
<view :catch-move=”true”>vue</view>
<View catchMove={false}>React</View>
- 判断机型/平台
let isIOS : string = Taro.getSystemInfoSync().platform;//判断机型 devtools/ios/iPhone let isWX : string = process.env.TARO_ENV; //判断平台
生命周期
import Taro, { useLoad,useLaunch ,useUnload ,useDidShow,useDidHide} from '@tarojs/taro' useLoad 页面加载完成时的回调。 useLaunch 小程序初始化完成时的回调。 useUnload 页面卸载时的回调。 useDidShow 页面展示时的回调。 useDidHide 页面隐藏时的回调。