最近开始接触了小程序的开发,因为时间问题,文档阅读的并不完备,也踩了不少坑。不得不说,微信的野心真是愈来愈大了,可是它超高的流量注定了它有这个资本。
原文地址:mini programshtml
官方提供了 scroll-view(可滚动视图区域)组件,开发者能够很方便对其进行配置。
在使用过程当中,必需要指定 scroll-view 的一个固定高度,因此在某些状况下须要动态为该组件添加高度.web
//wxml <scroll-view style="height:{{scrollHeight}}px;"></scroll-view> //js data: { scrollHeight: 500 }, onShow: function() { var that = this wx.getSystemInfo({ success: function(res) { that.setData({ scrollHeight: res.windowHeight }) } }) }
注:使用 scroll-view 时会阻止页面回弹,因此在 scroll-view 中滚动,没法触发 onPullDownRefresh
官方一样提供了 swiper 组件,只需简单进行配置便可实现轮播图,可是对于轮播图的指示点来讲,并无提供过多的配置,因此若要修改指示点,须要禁用默认自行进行模拟。json
//wxml <swiper class='swiper' autoplay circular interval='2000' bindchange="swiperChange"> <swiper-item> <image src="{{imageUrl}}"/> </swiper-item> </swiper> <view class="dots"> <block wx:for="{{imgUrls}}"> <view class="dot{{index == swiperCurrent ? ' active' : ''}}"></view> </block> </view> //js data: { swiperCurrent : 0 }, swiperChange: function (e) { this.setData({ swiperCurrent: e.detail.current }) },
在小程序中,官方为咱们提供了原生的下拉刷新和上拉加载,只须要进行简单的配置便可实现下拉刷新的功能小程序
//app.json "window": { "backgroundTextStyle": "dark",//若是下拉未呈现加载中图标,将 light 改成 dark "enablePullDownRefresh": true, "onReachBottomDistance": 50//页面上拉触底事件触发时距页面底部距离,单位为px } //js onPullDownRefresh: function() { //标题显示加载 gif wx.showNavigationBarLoading() //执行完成后,中止下拉刷新和加载 gif wx.stopPullDownRefresh() wx.hideNavigationBarLoading() }, onReachBottom: function() { //your code }
除此以外,还可使用 scroll-view 组件来实现这两个功能微信小程序
//wxml <scroll-view style="height: {{scrollHeight}}px;" enable-back-to-top bindscrolltolower="loadMore" bindscrolltoupper="refreshData"> </scroll-view> //js loadMore: function() { //your code }, refreshData: function() { //your code }
在实际体验中,使用 scroll-view 的下拉刷新,当页面处于最顶端时,下拉没法触发该事件,须要滚动页面一段距离再下拉才会触发 bindscrolltoupper,体验并不友好,因此仍是建议使用小程序原生下拉刷新。api
另外一个问题是,在上拉加载的时候,常常会触发屡次加载事件,显然是不符合需求的,解决方法能够为加载事件添加一个加载状态,默认 true,触发加载时置为 false,待事件所有执行完毕后再修改成 true。微信
//wxml <scroll-view style="height: {{scrollHeight}}px;" enable-back-to-top bindscrolltolower="{{loadMore? 'loadMore' : ''}}"> </scroll-view>
微信小程序不支持原生页面跳转,包括 html 和 js,若要跳转小程序应用内页面,须要使用 wx.navigateTo(OBJECT),详见 wx.navigateTo API。若要跳转 H5 页面,就须要用到 web-view 组件了。
web-view 组件是一个能够用来承载网页的容器,会自动铺满整个小程序页面。app
<web-view src="{{url}}"></web-view>
web-view指向的 H5 连接必需要在小程序后台配置白名单。xss
若要实现动态跳转,只须要动态传参到 web-view 所在页面就能够了ide
//demo.wxml <view class='search-right' data-url='{{url}}' bindtap='toPage'></view> //demo.js data: { url: 'https://www.google.com' }, toPage: function(e) { wx.navigateTo({ url: 'pages/webView?url=' + e.currentTarget.dataset.url }) } //webView.wxml <web-view src="{{url}}"></web-view> //webView.js data: { url: '' }, onLoad: function(options) { options.url? this.setData({ url: options.url }) : wx.navigateBack() }
小程序不能使用层级选择器。
在 wxss 不能使用背景图片,须要使用 image 组件引入图片。
wxml中不能直接插入转义字符,须要使用在 text 组件中使用。
<text decode="{{true}}" space="{{true}}"> </text>
自定义循环变量使用 wx:for-item="i"。