微信小程序开发整理-mp2

一、WXSS和CSS的关系

WXSS 具有CSS大部分特性,同时,WXSS还对CSS进行了扩充以及修改,以适应微信小程序的开发。与CSS相比,wXSS 扩展的特性有:

  • rpx尺寸单位
  • @import样式导入

1、rpx尺寸单位-750

rpx ( responsive pixel)是微信小程序独有的,用来解决屏适配的尺寸单位。

2、样式导入

 @import后跟需要导入的外联样式表的相对路径,用;表示语句结束。示例如下:

@import "common. wxss";

3、全局样式与局部样式

当局部样式和全局样式冲突时,根据就近原则,局部样式会覆盖全局样式。

当局部样式的权重大于或等于全局样式的权重时,才会覆盖全局的样式。

二、全局配置

1、app.json

小程序根目录下的app.json文件是小程序的全局配置文件。常用的配置项如下:

  • pages---记录当前小程序所有页面的存放路径
  • window---全局设置小程序窗口的外观
  • tabBar---设置小程序底部的tabBar效果
  • style---是否启用新版的组件样式

2、window节点常用的配置项

属性名类型默认值说明
navigationBarTitleTextString字符串导航栏标题文字内容
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如#000000
navigationBarTextStyleStringwhite导航栏标题颜色,仅支持black / white
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStyleStringdark下拉loading的样式,仅支持dark / light
enablePullDownRefreshBooleanfalse是否全局开启下拉刷新
onReachBottomDistanceNumber50页面上拉触底事件触发时距页面底部距离,单位为px

设置上拉触底的距离:

上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为。

3、tabBar

tabBar是移动端应用常见的页面效果,用于实现多页面的快速切换。小程序中通常将其分为:

  • 底部 tabBar
  • 顶部 tabBar

注意:

  • tabBar中只能配置最少2个、最多5个tab页签
  • 当渲染顶部 tabBar时,不显示icon,只显示文本

4、数据请求

出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制:

  • 只能请求HTTPS类型的接口
  • 必须将接口的域名添加到信任列表中

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请求”,而是叫做“发起网络数据请求”。

5、案例总结

三、视图与逻辑

(一)、页面导航

1、定义

页面之间的相互跳转。

2、声明式导航

导航到tabBar页面:

tabBar页面指的是被配置为tabBar的页面。
在使用<navigator>组件跳转到指定的tabBar页面时,需要指定url属性和open-type属性:

  • url表示要跳转的页面的地址,必须以   /  开头
  • open-type表示跳转的方式,必须为switchTab(tabBar页面用navigator,可省略!)
<navigator url="/pages/message/message" open-type=" switchTab">导航到消息页面</navigator>

 后退导航:

如果要后退到上一页面或多级页面,则需要指定open-type属性和delta属性,其中:

  • open-type的值必须是navigateBack,表示要进行后退导航
  • delta的值必须是数字,表示要后退的层级

导航传参:

navigator组件的url属性用来指定将要跳转到的页面的路径。路径的后面还可以携带参数:

  • 参数与路径之间使用?分隔
  • 参数键与参数值用=相连
  • 不同参数用&分隔

3、编程试导航

导航到tabBar页面:

调用wx.switchTab(Object object)方法,可以跳转到 tabBar页面。其中 Object.参数对象的属性列表如下:

属性类型是否必选说明
urlstring需要跳转的tabBar页面的路径,路径后不能带参数
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

导航到非tabBar页面:

调用wx.navigateTo(Object object)方法,可以跳转到非tabBar的页面。其中Object 参数对象的属性列表如下:

属性类型是否必选说明
urlstring需要跳转到的非tabBar页面的路径,路径后可以带参数
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
后退导航默认值1 wx.navigateBack
deltanumber返回的页面数,如果delta大于现有页面数,则返回到首页

导航传参:

调用wx.navigateTo(Object object)方法跳转页面时,也可以携带参数。

(二)、页面事件

1、下拉刷新(参考二.2)

  • 监听页面的下拉刷新事件:在页面的.js 文件中,通过onPullDownRefresh()函数。
  • 停止下拉刷新的效果:onPullDownRefresh()中调用wx.stopPullDownRefresh()

2、上拉触底(参考二.2)

  • 监听页面的上拉触底事件:在页面的.js 文件中,通过onReachBottom()函数。
  • 配置上拉触底距离:二.2
  • Loading提示效果(参考官方文档):wx.showLoading

3、 对上拉触底进行节流处理

I、在data中定义isloading节流阀。

  • false表示当前没有进行任何数据请求
  • true表示当前正在进行数据请求
data:{
isLoding:false
},

II、在getColors()方法中修改isloading节流阀的值。

  • 在刚调用getColors时将节流阀设置true
  • 在网络请求的complete回调函数中,将节流阀重置为false
getColors(){
    this.setData({
        isloding: true
})



complete()=>{
    this.setData({
        isLoding:false
    })
}

III、在onReachBottom中判断节流阀的值,从而对数据请求进行节流控制。

  • 如果节流阀的值为true,则阻止当前请求
  • 如果节流阀的值为false,则发起数据请求
onReachBottom: function (){
    if(this.data.isloding) return
    this.getColors()
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java张金贺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值