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' // 修改导航栏文字颜色为白色
});

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

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

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

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

相关推荐
青柠之夏cc38 分钟前
前端拖拽功能原生实现,不引入拖拽库完成业务
开发语言·前端·python
liangshanbo12151 小时前
前端大文件切片上传怎么做?
前端
Sand(ContextGate)2 小时前
Python Agent 测试实战:测试与评估,让 Agent 像传统软件一样可交付
前端·javascript·python·microsoft·ai
广州华水科技2 小时前
单北斗GNSS变形监测系统在城市安全与地质灾害中的应用前景
前端
颜进强2 小时前
20 · NestJs循环依赖与 forwardRef:容器为什么在环面前会死,"占位再补齐"怎么救
前端·后端·ai编程
颜进强2 小时前
19 · NestJs @Global 落地账:装饰器与 `isGlobal` 参数,各在什么场景上岗
前端·后端·ai编程
码艺-Alimjan2 小时前
Tauri 网站To桌面应用实战总结
前端·javascript·vue
颜进强2 小时前
18 · NestJS动态模块与 forRoot:`imports: [ConfigModule.forRoot({...})]` 到底在 import 什么
前端·后端·ai编程
YZ1225523 小时前
【Docker专题】使用Docker部署Vue-Flask项目前后端分离版【前端Docker部署】
前端·vue.js·docker
liangshanbo12153 小时前
浏览器渲染过程:高级前端面试题
前端