首页/新闻资讯/正文详情

微信小程序开发实战:案例3.8 模块化详解与不同模块背景颜色区分

发布时间:2026/9/23 22:02:18 来源:云帆数科 栏目:资讯中心
微信小程序开发实战:案例3.8 模块化详解与不同模块背景颜色区分
前言在微信小程序的开发过程中随着项目功能的增加代码量也会随之膨胀。为了提高代码的可维护性和复用性模块化Modularization是必不可少的手段。微信小程序原生支持 CommonJS 规范允许我们将通用的变量和函数封装在独立的 JS 文件中并通过module.exports导出在需要的地方使用require引入。本文将基于教学案例“3.8 模块化”详细演示如何在小程序中引用全局模块、不同目录下的模块、相同目录下的不同模块以及本模块的变量和函数并在此基础上为来自不同模块的输出信息加上不同的背景颜色以作区分。一、 项目准备与结构规划首先新建一个不使用云服务和模板的微信小程序项目。为了清晰地演示不同层级的模块引用我们规划如下目录结构text├── app.js // 全局逻辑 (全局模块) ├── app.wxss ├── common/ │ └── common.js // 不同目录下的公共模块 ├── pages/ │ └── index/ │ ├── index.js // 页面主逻辑 (本模块) │ ├── index.json │ ├── index.wxml │ ├── index.wxss │ └── my-index.js // 相同目录下的兄弟模块二、 核心代码实现1. 定义全局模块 (app.js)在app.js中我们在App()函数内定义全局变量appMsg和全局函数appFunc。javascript// app.js App({ appMsg: 来自全局模块的变量, appFunc() { return 来自全局模块的函数 } })2. 定义不同目录下的模块 (common/common.js)在根目录新建common文件夹并创建common.js导出变量和函数。javascript// common/common.js const comMsg 来自不同目录下模块的变量 function comFunc() { return 来自不同目录下模块的函数 } // 导出模块 module.exports { comMsg, comFunc }3. 定义相同目录下的不同模块 (pages/index/my-index.js)在pages/index目录下新建my-index.js。javascript// pages/index/my-index.js const myIndexMsg 来自相同目录下不同模块的变量 function myIndexFunc() { return 来自相同目录下不同模块的函数 } module.exports { myIndexMsg, myIndexFunc }4. 在页面中引用所有模块 (pages/index/index.js)这是核心部分。我们需要使用getApp()获取全局实例使用require()引入外部模块并定义本模块的变量和函数。同时为了满足“加上不同背景颜色”的要求我们在data中为不同的数据分配不同的类名color1到color4。javascript// pages/index/index.js // 1. 本模块的变量和函数 const indexMsg 来自本模块的变量 function indexFunc() { return 来自本模块的函数 } // 2. 获取全局App实例 const app getApp() // 3. 引入不同目录下的模块 (注意路径层级) const comm require(../../common/common.js) // 4. 引入相同目录下的模块 const myIndex require(./my-index.js) Page({ data: { // 全局模块数据 (分配类名: bg-global) msg1: index.js模块引用 app.appMsg, msg2: index.js模块引用 app.appFunc(), color1: bg-global, // 不同目录下模块数据 (分配类名: bg-common) msg3: index.js模块引用 comm.comMsg, msg4: index.js模块引用 comm.comFunc(), color2: bg-common, // 相同目录下不同模块数据 (分配类名: bg-myindex) msg5: index.js模块引用 myIndex.myIndexMsg, msg6: index.js模块引用 myIndex.myIndexFunc(), color3: bg-myindex, // 本模块数据 (分配类名: bg-local) msg7: index.js模块引用 indexMsg, msg8: index.js模块引用 indexFunc(), color4: bg-local } })5. 页面结构渲染 (pages/index/index.wxml)在视图层通过数据绑定{{colorX}}来动态应用不同的背景颜色。html!-- pages/index/index.wxml -- view classcontainer view classtitle引用来自不同模块的变量和函数/view !-- 全局模块 -- view class{{color1}}{{msg1}}/view view class{{color1}}{{msg2}}/view !-- 不同目录下的模块 -- view class{{color2}}{{msg3}}/view view class{{color2}}{{msg4}}/view !-- 相同目录下的不同模块 -- view class{{color3}}{{msg5}}/view view class{{color3}}{{msg6}}/view !-- 本模块 -- view class{{color4}}{{msg7}}/view view class{{color4}}{{msg8}}/view /view6. 样式美化与背景颜色区分 (pages/index/index.wxss)最后在样式表中定义不同的背景颜色和字体颜色以达到直观区分模块来源的效果。css/* pages/index/index.wxss */ page { height: 100vh; display: flex; flex-direction: column; padding: 20rpx; } .title { font-size: 36rpx; font-weight: bold; margin-bottom: 20rpx; text-align: center; } /* 基础文本样式 */ view { line-height: 2.5em; font-size: 32rpx; margin-bottom: 10rpx; padding: 0 20rpx; border-radius: 8rpx; } /* --- 不同模块的背景颜色区分 --- */ /* 1. 全局模块 - 浅蓝色背景 */ .bg-global { background-color: #e6f7ff; color: #0050b3; } /* 2. 不同目录下的模块 - 浅绿色背景 */ .bg-common { background-color: #f6ffed; color: #389e0d; } /* 3. 相同目录下的不同模块 - 浅橙色背景 */ .bg-myindex { background-color: #fff7e6; color: #d46b08; } /* 4. 本模块 - 浅紫色背景 */ .bg-local { background-color: #f9f0ff; color: #531dab; }三、 运行效果与总结编译运行小程序后页面将呈现出四组不同背景颜色的文本块浅蓝色代表引用了全局模块app.js的数据。浅绿色代表引用了不同目录下模块common/common.js的数据。浅橙色代表引用了相同目录下不同模块pages/index/my-index.js的数据。浅紫色代表引用了本模块pages/index/index.js自身的数据。通过这个案例我们可以深刻理解微信小程序的模块化机制全局模块适用于整个小程序生命周期内都需要共享的数据如用户信息、系统配置通过getApp()获取。CommonJS 规范的require和module.exports是小程序模块化的基石支持相对路径引用极大地提高了代码的复用性和逻辑的清晰度。在视图层通过动态绑定class可以灵活地根据数据来源展示不同的 UI 效果提升用户体验。

相关推荐

SSM微信小程序商城源码二次开发:环境配平到支付闭环的实战指南
SSM微信小程序商城源码二次开发:环境配平到支付闭环的实战指南

简介:JAVA微信小程序商城源码加完整后台,是一套基于SpringMVC、MyBatis、Spring、Maven与MySQL构建的电商系统,面向具备一定Java基础的中级开发者、小程序学习者及需要快速搭建商城的创业团队。资源涵盖商品发布、物流管理、评价系统、优惠券… · 2026/9/23 22:02:12

CSP-J初赛真题解析与自动化备考方法
CSP-J初赛真题解析与自动化备考方法

简介:本资源是面向CSP-J组初赛备考学生的专项训练资料,聚焦计算机基础与编程能力认证核心考点,适用于初中阶段信息学竞赛入门者及教师教学参考。文件为单个Word文档(.doc格式,17KB),完整收录202… · 2026/9/23 22:01:59

SpringBoot+Vue美发管理系统开发实战
SpringBoot+Vue美发管理系统开发实战

1. 项目概述与背景美发行业作为服务业的典型代表,其日常运营涉及客户管理、预约排班、库存统计、绩效核算等多个业务环节。传统的手工记录或Excel表格管理方式存在数据易丢失、查询效率低、统计分析困难等痛点。我在实际调研中发现,一家中型美发店每月平… · 2026/9/23 22:01:47

你的文献综述,为什么读起来像“文献列表”?
你的文献综述,为什么读起来像“文献列表”?

官网:www.shujiangce.com | 微信 公众号 :书匠策AI 如果你已经写过三篇以上的课程论文,一定遇到过这个场景:导师看完你的文献综述部分,没有说“文献太少”,也没有说“格式不对”,只说了一句—… · 2026/9/23 22:42:00

开题报告最折磨人的,从来不是“写”这一步
开题报告最折磨人的,从来不是“写”这一步

官网:www.shujiangce.com | 微信 公众号 :书匠策AI 你有没有算过一笔账。 开题报告要求三千字,你打开空白文档,光标闪了十分钟,第一句话删了写、写了删,最后决定先去吃个饭。回来之后换了种策略&#… · 2026/9/23 22:42:00

ai写论文哪个软件最好?我用“学术CT扫描”的思路,找到了一个不太一样的答案
ai写论文哪个软件最好?我用“学术CT扫描”的思路,找到了一个不太一样的答案

官网:www.shujiangce.com | 微信 公众号 :书匠策AI 每次开直播,弹幕里刷得最多的问题永远是同一个:“博主,ai写论文哪个软件最好?” 我从来不给一个直接的名字。不是端着,是因为这个问题问… · 2026/9/23 22:41:54

Python+Jupyter Notebook用户画像实战:RFM模型构建与落地
Python+Jupyter Notebook用户画像实战:RFM模型构建与落地

简介:面向数据分析师与用户研究人员的Python用户画像构建源码,依托Jupyter Notebook环境,覆盖用户行为数据清洗、特征提取、可视化呈现等完整流程,可直接用于电商、内容平台等场景的画像建模练习。资源包共20个文件,压… · 2026/9/23 22:41:48

扑克牌目标识别数据集制作全指南:从标注到YOLOv8训练避坑实战
扑克牌目标识别数据集制作全指南:从标注到YOLOv8训练避坑实战

简介:面向扑克牌牌面识别场景,这套数据集包含363张扑克牌图像及配套的363个XML标注文件,覆盖queen、ten、nine、king、jack、ace共6种常见牌面类别,适合目标检测初学者用于数据准备、标注格式解析、模型训练与验证等完整流程练习。… · 2026/9/23 22:41:48

SLAMTB-Graph:轻量级Graph SLAM教学仿真工具箱
SLAMTB-Graph:轻量级Graph SLAM教学仿真工具箱

简介:本资源是一个面向机器人与SLAM初学者、高校教学及科研人员的MATLAB仿真工具箱,聚焦EKF-SLAM与图优化SLAM两大核心范式,帮助用户深入理解同时定位与建图的理论原理与工程实现。压缩包共415个文件,以408个MATLAB函数&#xff0… · 2026/9/23 22:41:41

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码