微信小程序开发整理-mp2
admin
2024-01-29 08:52:30

一、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的页面。
在使用组件跳转到指定的tabBar页面时,需要指定url属性和open-type属性:

  • url表示要跳转的页面的地址,必须以   /  开头
  • open-type表示跳转的方式,必须为switchTab(tabBar页面用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) returnthis.getColors()
},

相关内容

热门资讯

新质新格局,景芝白酒再次点亮黄... 11月18日,备受瞩目的2025年第六届中国白酒黄淮核心产区高质量发展峰会在淄博举办。本届峰会以“新...
今日播出|丝路陕茶 千年留香 播出时间:农林卫视《农村大市场》11月19日22:05 丝路陕茶 千年留香 陕西是我国最早种茶、出产...
纠结有什么好吃的零食品牌推荐?... 在快节奏的现代生活中,零食早已超越了单纯的充饥角色,转而成为我们慰藉味蕾、补充能量、甚至分享快乐的重...
吃巧克力能缓解甲状腺相关疲劳? 一、甲状腺相关疲劳的核心成因 要判断巧克力能否缓解甲状腺相关疲劳,首先需要明确这种疲劳的根源。甲状腺...
暖乎乎的酒酿南瓜丸子羹,一口甜... 秋冬最治愈的家常甜汤,必须提名酒酿南瓜丸子羹!金黄的南瓜丸子软乎乎,裹着清甜的酒酿汤汁,一口下去暖到...