Taro v4框架开发微信小程序(窗口与页面)

窗口与页面的区别

在小程序的开发中,"窗口"和"页面"是两个不同的概念,它们分别代表不同的层级和功能:

  1. 窗口(Window) :指的是小程序的显示区域。在小程序的src/app.config.ts全局配置中,可以设置窗口的一些属性,例如背景色、文字颜色、导航条样式等。

  2. 页面(Page):页面则是小程序内的每一个单独界面,通常对应着小程序的一个功能模块。开发者可以为每个页面设置独立的配置,包括窗口的一些特有样式。页面会在窗口内进行展示,小程序中的导航就是在不同页面间跳转。

设置微信小程序的窗口背景色

要改变窗口的背景色,我们可以在src/app.config.ts文件的window对象中添加backgroundColor属性:

typescript 复制代码
window: {
  // ...
  backgroundColor: '#ccc',
}

这里,背景色被设置成了灰色(#ccc)。

检查背景色变化

在微信开发者工具中预览时,如果未看到背景颜色的变化,这可能是因为页面本身有背景色覆盖了窗口的背景色

开启下拉刷新功能

为了更好地观察窗口背景色,我们可以开启页面的下拉刷新功能。这样当页面下拉时,背景色将在滚动的间隙中展现出来:

typescript 复制代码
window: {
  // ...
  backgroundColor: '#ccc',
  enablePullDownRefresh: true,
}

在微信开发者工具中下拉页面,窗口的灰色背景变得可见。

我们得出结论:页面就像是白色的布一层层叠加在窗口容器上

自定义页面背景颜色

有时候我们希望为小程序页面设置一个特定的背景色。要实现这一点,在Taro框架中我们可以直接通过CSS来修改页面的背景色。

页面级别背景色的CSS设置

在页面的CSS文件中对page选择器设置背景颜色。在页面样式文件中添加以下CSS代码:

scss 复制代码
page {
  background-color: #ccff00; // 您可以根据需求设置为任何颜色代码
}

上述代码中background-color设置了页面的背景颜色为亮黄色(#ccff00)。

在微信开发者工具中查看效果

做出以上更改后,我们在微信小程序开发者工具中预览效果。

自定义微信小程序导航栏样式

我们可以改变导航栏的背景颜色,以及设置导航标题的文字颜色。不过,需要注意的是,导航栏的文字大小是不可更改的。

设置导航栏背景和文字颜色

要修改导航栏的背景颜色,可以在页面的配置文件中使用navigationBarBackgroundColor属性。navigationBarTextStyle属性允许我们选择文字颜色,但仅限于黑色或白色:

javascript 复制代码
export default definePageConfig({
  // ...
  navigationBarBackgroundColor: '#cf0', // 修改导航栏背景颜色为亮黄色
  navigationBarTextStyle: 'white' // 修改导航栏文字颜色为白色
});

使用上述配置后,导航栏将显示为亮黄色背景配上白色文字。

微信开发者工具中的预览效果

将会看到导航条背景颜色和文字颜色已经根据设置进行了改变:

在未来的章节中,我们将讨论如何自定义导航栏。

相关推荐
NiceCloud喜云4 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
wordbaby5 小时前
React Native + RNOH:跨页面数据回传的最佳实践与避坑指南
前端·react native
丷丩5 小时前
MapLibre GL JS第22课:查看本地GeoJSON
前端·javascript·map·mapbox·maplibre gl js
Front思6 小时前
AI前端工程师需要具备能力+
前端·人工智能·ai
kyh10033811207 小时前
Cocos Creator 《打螺丝消除游戏》源码+实现
游戏·微信小程序·小程序·打螺丝小游戏源码·微笑小游戏源码
ZC跨境爬虫8 小时前
跟着 MDN 学CSS day_29:(掌握文本与字体样式的核心艺术)
前端·css·ui·html·tensorflow
李子琪。9 小时前
网络空间安全深度实战:CSRF 漏洞原理剖析与基于 Token 的纵深防御体系构建(全栈实验报告)
前端·安全·csrf
冰暮流星9 小时前
javascript之history对象介绍
前端·笔记
IT_陈寒9 小时前
Vite热更新失灵?你可能漏了这个配置
前端·人工智能·后端
丷丩9 小时前
MapLibre GL JS第19课:实时更新要素
前端·javascript·gis·map·mapbox·maplibre gl js