WXSS 具有CSS大部分特性,同时,WXSS还对CSS进行了扩充以及修改,以适应微信小程序的开发。与CSS相比,wXSS 扩展的特性有:
- rpx尺寸单位
- @import样式导入
rpx ( responsive pixel)是微信小程序独有的,用来解决屏适配的尺寸单位。
@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。示例如下:
@import "common. wxss";
当局部样式和全局样式冲突时,根据就近原则,局部样式会覆盖全局样式。
当局部样式的权重大于或等于全局样式的权重时,才会覆盖全局的样式。
小程序根目录下的app.json文件是小程序的全局配置文件。常用的配置项如下:
属性名 | 类型 | 默认值 | 说明 |
navigationBarTitleText | String | 字符串 | 导航栏标题文字内容 |
navigationBarBackgroundColor | HexColor | #000000 | 导航栏背景颜色,如#000000 |
navigationBarTextStyle | String | white | 导航栏标题颜色,仅支持black / white |
backgroundColor | HexColor | #ffffff | 窗口的背景色 |
backgroundTextStyle | String | dark | 下拉loading的样式,仅支持dark / light |
enablePullDownRefresh | Boolean | false | 是否全局开启下拉刷新 |
onReachBottomDistance | Number | 50 | 页面上拉触底事件触发时距页面底部距离,单位为px |
设置上拉触底的距离:
上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为。
tabBar是移动端应用常见的页面效果,用于实现多页面的快速切换。小程序中通常将其分为:
注意:
出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制:
GET请求:调用微信小程序提供的wx.request()方法,可以发起GET数据请求,示例代码如下:
wx.request({url: 'https: //ww.escook.cn/api/get',//请求的接口地址,必须基于 https 协议method: 'GET",//请求的方式data: {//发送到服务器的数据name: 'zhang",age: 22},success: (res) => { //请求成功之后的回调函数console.log(res)}
}}
POST请求:调用微信小程序提供的wx.request()方法,可以发起POST数据请求,示例代码如下:
wx.request({url: 'https: //ww.escook.cn/api/get',//请求的接口地址,必须基于 https 协议method: 'POST",//请求的方式data: {//发送到服务器的数据name: 'zhang",age: 22},success: (res) => { //请求成功之后的回调函数console.log(res)}
}}
预加载数据
onlLoad: function (options) {this.getSwiperListo() //方法this.getGridListo() //方法
}
- 跨域问题只存在于基于浏览器的Web 开发中。由于小程序的宿主环境不是浏览器,而是微信客户端,所以小程序中不存在跨域的问题。
- Ajax技术的核心是依赖于浏览器中的XMLHttpRequest这个对象,由于小程序的宿主环境是微信客户端,所以小程序中不能叫做“发起Ajax请求”,而是叫做“发起网络数据请求”。
页面之间的相互跳转。
导航到tabBar页面:
tabBar页面指的是被配置为tabBar的页面。
在使用组件跳转到指定的tabBar页面时,需要指定url属性和open-type属性:
- url表示要跳转的页面的地址,必须以 / 开头
- open-type表示跳转的方式,必须为switchTab(tabBar页面用navigator,可省略!)
导航到消息页面
后退导航:
如果要后退到上一页面或多级页面,则需要指定open-type属性和delta属性,其中:
- open-type的值必须是navigateBack,表示要进行后退导航
- delta的值必须是数字,表示要后退的层级
导航传参:
navigator组件的url属性用来指定将要跳转到的页面的路径。路径的后面还可以携带参数:
- 参数与路径之间使用?分隔
- 参数键与参数值用=相连
- 不同参数用&分隔
导航到tabBar页面:
调用wx.switchTab(Object object)方法,可以跳转到 tabBar页面。其中 Object.参数对象的属性列表如下:
属性 类型 是否必选 说明 url string 是 需要跳转的tabBar页面的路径,路径后不能带参数 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)
导航到非tabBar页面:
调用wx.navigateTo(Object object)方法,可以跳转到非tabBar的页面。其中Object 参数对象的属性列表如下:
属性 类型 是否必选 说明 url string 是 需要跳转到的非tabBar页面的路径,路径后可以带参数 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) 后退导航 默认值1 wx.navigateBack delta number 否 返回的页面数,如果delta大于现有页面数,则返回到首页
调用wx.navigateTo(Object object)方法跳转页面时,也可以携带参数。
I、在data中定义isloading节流阀。
data:{
isLoding:false
},
II、在getColors()方法中修改isloading节流阀的值。
getColors(){this.setData({isloding: true
})complete()=>{this.setData({isLoding:false})
}
III、在onReachBottom中判断节流阀的值,从而对数据请求进行节流控制。
onReachBottom: function (){if(this.data.isloding) returnthis.getColors()
},