小程序 - 模板与配置

小程序 - 模板与配置

WXSS 模板样式

什么是 WXSS

WXSS (WeiXin Style Sheets)是一套样式语言,用于美化 WXML 的组件样式,类似于网页开发中的 CSS.

WXSS 和 CSS 的关系

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

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

rpx

什么是rpx尺寸单位

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

rpx的实现原理

rpx 的实现原理非常简单:鉴于不同设备屏幕的大小不同,为了实现屏幕的自动适配,rpx 把所有设备的屏幕在宽度上等分为 750 份 (即: 当前屏幕的总宽度为 750rpx)。

  • 较小的设备上,1rpx 所代表的宽度较小
  • 较大的设备上,1rpx 所代表的宽度较大

小程序在不同设备上运行的时候,会自动把 rpx 的样式单位换算成对应的像素单位来渲染,从而实现屏幕适配

rpx与 px 之间的单位换算*

在 iPhone6 上,屏幕宽度为375px,共有 750 个物理像素,等分为 750rpx。则:

  • 750rpx = 375px = 750 物理像素
  • 1rpx = 0.5px = 1物理像素

官方建议: 开发微信小程序时,设计师可以用 iphone6 作为视觉稿的标准

开发举例:在 iPhone6 上如果要绘制宽100px高20px的盒子,换算成rpx单位,宽高分别为 200rpx40rpx

样式导入

什么是样式导入

使用 WXSS 提供的 @import 语法,可以导入外联的样式表

@import 的语法格式

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

/** common.wxss **/
.small-p {
    padding: 5px;
}
/** app.wxcss **/
@import "common.wxss";
.middle-p {
    padding: 15px;
}

全局样式和局部样式

全局样式

定义在 app.wxss 中的样式为全局样式,作用于每一个页面

局部样式

页面的 .wxss 文件中定义的样式为局部样式,只作用于当前页面

注意:

  1. 当局部样式和全局样式冲突时,根据就近原则,局部样式会覆盖全局样式
  2. 当局部样式的权重大于或等于全局样式的权重时,才会覆盖全局的样式

全局配置

全局配置文件及常用的配置项

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

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

了解 window 节点常用的配置项

设置导航栏的标题

设置步骤: app.json -> window -> navigationBarTitleText

需求:把导航条上的标题,从默认的 “WeChat” 修改为 “黑马程序员” ,效果如图所示:

设置导航栏的背景色

设置步骤: app.json -> window -> navigationBarBackgroundColor

需求: 把导航栏标题的背景色,从默认的 #fff 修改为 #2b4b6b ,效果如图所示:

设置导航栏的标题颜色

设置步骤: app.json -> window -> navigationBarTextStyle

需求: 把导航条上的标题,从默认的 black 修改为 white ,效果如图所示:

注意: navigationBarTextStyle 的可选值只有 blackwhite

全局开启下拉刷新功能

概念:下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为设置步骤: app.json -> window -> 把 enablePullDownRefresh 的值设置为 true

注意:在app.json 中启用下拉刷新功能,会作用于每个小程序页面!最好是哪里要就加哪里的 .json 文件

设置下拉刷新时窗口的背景色

当全局开启下拉刷新功能之后,默认的窗口背景为白色。如果自定义下拉刷新窗口背景色,设置步骤为:app.json -> window -> 为 backgroundColor 指定1进制的颜色值 #efefef。效果如下

设置下拉刷新时 loading 的样式

当全局开启下拉刷新功能之后,默认窗口的loading 样式为白色,如果要更改loading 样式的效果,设置步骤为 app.json -> window -> 为 backgroundTextStyle 指定 dark 值。效果如下:

注意: backgroundTextStyle 的可选值只有 lightdark

设置上拉触底的距离

概念:上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为。设置步骤: app.json -> window ->为 onReachBottomDistance 设置新的数值
注意:默认距离为50px,如果没有特殊需求,建议使用默认值即可

tabBar
什么是 tabBar

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

  • 底部 tabBar
  • 顶部 tabBar

注意:

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

tabBar 的6个组成部分
  1. backgroundColor: tabBar 的背景色
  2. selectedIconPath: 选中时的图片路径
  3. borderStyle: tabBar 上边框的颜色
  4. iconPath: 未选中时的图片路径
  5. selectedColor: tab 上的文字选中时的颜色
  6. color: tab 上文字的默认 (未选中) 颜色

tabBar 节点的配置项

每个 tab 项的配置选项

页面配置

页面配置文件的作用

小程序中,每个页面都有自己的 .json 配置文件,用来对当前页面的窗口外观、页面效果等进行配置

页面配置和全局配置的关系

小程序中,app.json 中的 window 节点,可以全局配置小程序中每个页面的窗口表现

如果某些小程序页面想要拥有特殊的窗口表现,此时,"页面级别的 .json 配置文件” 就可以实现这种需求

注意:当页面配置与全局配置冲突时,根据就近原则,最终的效果以页面配置为准

页面配置中常用的配置项

网络数据请求

小程序中网络数据请求的限制

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

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

配置request 合法域名

需求描述: 假设在自己的微信小程序中,希望请求 https://www.escook.cn/ 域名下的接口

配置步骤:登录微信小程序管理后台 -> 开发 -> 开发设置 -> 服务器域名 -> 修改 request 合法域名

注意事项:

  1. 域名只支持 https 协议
  2. 域名不能使用 IP 地址或 localhost
  3. 3域名必须经过 ICP 备案
  4. 服务器域名一个月内最多可申请 5 次修改
发起GET 请求

调用微信小程序提供的 wx.request() 方法,可以发起 GET 数据请求,示例代码如下

wx.request({
    url: 'https://www.escook.cn/api/get',  // 请求的接口地址,必须基于 https 协议
    method: 'GET',	// 请求的方式
    data: {		// 发送到服务器的数据
        name: 'zs',
        age: 22
    },
    success: (res) => {	// 请求成功之后的回调函数
        console.log(res)
    }
})
发起POST请求

调用微信小程序提供的 wx.request()方法,可以发起 POST 数据请求,示例代码如下

wx.request({
    url: 'https://www.escook.cn/api/post',  // 请求的接口地址,必须基于 https 协议
    method: 'POST',		// 请求的方式
    data: {		// 发送到服务器的数据
        name: 'ls',
        age: '18'
    },
    success: (res) => {	// 请求成功之后的回调函数
        console.log(res)
    }
})
在页面刚加载时请求数据

在很多情况下,我们需要在页面刚加载的时候,自动请求一些初始化的数据。此时需要在页面的 onLoad 事件中调用获取数据的函数,示例代码如下:

/*
 * 生命周期函数--监听页面加载
 */
onLoad: function (options) {
    this.getSwiperList()
    this.getGridList()
},
    
// 获取轮播图的数据
getSwiperList() { ...
},
    
// 获取九宫格的数据
getGridList() { ...
}
跳过 request 合法域名校验

如果后端程序员仅仅提供了 http 协议的接口、暂时没有提供 https 协议的接口

此时为了不耽误开发的进度,我们可以在微信开发者工具中,临时开启[开发环境不校验请求域名、TLS 版本及 HTTPS 证书],选项跳过 request 合法域名的校验

注意:跳过 request 合法域名校验的选项,仅限开发与调试阶段使用!

关于跨域和 Ajax 的说明

跨域问题只存在于基于浏览器的 Web 开发中。由于小程序的宿主环境不是浏览器,而是微信客户端,所以小程序中不存在跨域的问题
Ajax 技术的核心是依赖于浏览器中的 XMLHtpRequest 这个对象,由于小程序的宿主环境是微信客户端,所以小程序中不能叫做 “发起 Ajax 请求”,而是叫做“发起网络数据请求"

总结

  1. 能够使用 WXML 模板语法渲染页面结构
    • wx:if、wx:elif、wx:else、hidden、wx:forwx:key
  2. 能够使用 WXSS 样式美化页面结构
    • ==rpx 尺寸单位、@import 样式导入、全局样式和局部样式
  3. 能够使用 app.json 对小程序进行全局性配置
    • pages、windowtabBar、style
  4. 能够使用 page.json 对小程序页面进行个性化配置
    • 对单个页面进行个性化配置、就近原则
  5. 能够知道如何发起网络数据请求
    • wx:request() 方法、onLoad() 事件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值