微信小程序模块化开发学习笔记:3.8 模块化
一、学习目标通过本案例的学习掌握微信小程序中模块化的基本概念和实现方法理解如何在不同模块之间引用变量和函数。具体包括理解模块化的作用和意义。掌握module.exports导出模块变量和函数的方法。掌握require()引入模块的方法。掌握getApp()获取全局 App 实例的方法。能够引用来自全局模块、本模块、不同目录下其它模块、相同目录下其它模块中的变量和函数。二、案例描述设计一个小程序演示在index.js模块中引用来自全局模块、本模块、不同目录下其它模块、相同目录下其它模块中的变量和函数的方法。实现效果引用了来自全局模块、不同目录下的模块、相同目录下的模块、自身模块的变量和函数。三、实现步骤3.1 新建项目新建一个不使用云服务和模板的小应用项目。项目结构如下项目根目录 ├── app.js ├── app.json ├── app.wxss ├── common │ └── common.js ├── pages │ └── index │ ├── index.js │ ├── index.json │ ├── index.wxml │ └── index.wxss │ └── my-index.js3.2 创建 common.js 文件在小程序根目录下新建一个common文件夹在该文件夹下新建common.js文件。在文件中创建了一个模块变量comMsg和一个模块函数comFunc并用module.exports将变量和函数导出。// common/common.js // 模块变量 var comMsg 来自 common 模块的变量; // 模块函数 function comFunc() { console.log(来自 common 模块的函数); } // 导出模块变量和函数 module.exports { comMsg: comMsg, comFunc: comFunc };3.3 创建 my-index.js 文件在index文件夹下新增模块文件my-index.js。在文件中定义了一个模块变量myIndexMsg和一个模块函数myIndexFunc并用module.exports导出模块变量和模块函数。// pages/index/my-index.js // 模块变量 var myIndexMsg 来自 my-index 模块的变量; // 模块函数 function myIndexFunc() { console.log(来自 my-index 模块的函数); } // 导出模块变量和函数 module.exports { myIndexMsg: myIndexMsg, myIndexFunc: myIndexFunc };3.4 修改 app.js 文件在文件的App()函数中定义一个全局变量appMsg和一个全局函数appFunc。// app.js App({ // 全局变量 appMsg: 来自全局 App 的变量, // 全局函数 appFunc: function () { console.log(来自全局 App 的函数); }, onLaunch: function () { // 小程序启动时执行 } });3.5 修改 index.js 文件在index.js中定义了模块变量indexMsg和模块函数indexFunc。通过调用getApp()获取到小程序全局唯一的App实例利用require()函数引入模块返回模块通过module.exports或exports暴露的接口。// pages/index/index.js // 引入相同目录下的模块 var myIndex require(./my-index.js); // 引入不同目录下的模块 var common require(../../common/common.js); // 本模块变量 var indexMsg 来自 index 模块的变量; // 本模块函数 function indexFunc() { console.log(来自 index 模块的函数); } Page({ data: { // 本模块变量 indexMsg: indexMsg, // 相同目录下模块的变量 myIndexMsg: myIndex.myIndexMsg, // 不同目录下模块的变量 comMsg: common.comMsg, // 全局模块变量 appMsg: }, onLoad: function () { // 获取全局 App 实例 var app getApp(); this.setData({ appMsg: app.appMsg }); // 调用本模块函数 indexFunc(); // 调用相同目录下模块的函数 myIndex.myIndexFunc(); // 调用不同目录下模块的函数 common.comFunc(); // 调用全局函数 app.appFunc(); } });3.6 修改 index.wxml 文件通过数据绑定引用模块的变量和函数。view classcontainer view classscrollarea view classitem text本模块变量{{indexMsg}}/text /view view classitem text相同目录模块变量{{myIndexMsg}}/text /view view classitem text不同目录模块变量{{comMsg}}/text /view view classitem text全局模块变量{{appMsg}}/text /view /view /view3.7 修改 index.wxss 文件其中page和.scrollarea的样式是创建项目的时候自动生成的view的样式是新增的。/* pages/index/index.wxss */ .page { height: 100vh; } .scrollarea { height: 100%; padding: 20rpx; box-sizing: border-box; } .item { padding: 20rpx; margin-bottom: 20rpx; background-color: #f5f5f5; border-radius: 10rpx; font-size: 28rpx; }3.8 修改 app.wxss 文件/* app.wxss */ page { background-color: #ffffff; }四、核心知识点总结知识点说明module.exports用于导出模块中的变量和函数供其他模块通过require()引入使用。require()用于引入其他模块返回该模块通过module.exports或exports暴露的接口。getApp()用于获取小程序全局唯一的App实例从而访问全局变量和函数。相对路径引用相同目录下使用./不同目录下使用../../等相对路径进行引用。五、作业完成《案例3.8 模块化》。在《案例3.8 模块化》的基础上将来自不同模块的变量和函数输出信息加上不同的背景颜色。例如本模块变量浅蓝色背景。相同目录模块变量浅绿色背景。不同目录模块变量浅黄色背景。全局模块变量浅紫色背景。六、参考资料模块化除了看教材以外还可以参考微信官方文档微信小程序 require 官方文档

相关新闻

基于深度学习的台风路径预测:论文复现与工程实践全解析

基于深度学习的台风路径预测:论文复现与工程实践全解析

简介:这份资源面向深度学习与气象预测方向的学习者和研究者,聚焦基于深度学习的台风路径预测技术研究与实现,适合具备一定机器学习基础、希望将人工智能算法落地到自然灾害预警场景的开发者参考。压缩包共8个文件,约8.06MB&#x…

2026/9/23 16:48:46 阅读更多 →
YOLO垃圾分类数据集实战:VOC/COCO/YOLO三格式转换、划分与训练避坑指南

YOLO垃圾分类数据集实战:VOC/COCO/YOLO三格式转换、划分与训练避坑指南

简介:本资源为面向目标检测学习者的YOLO垃圾分类检测数据集,适用于课程设计、毕业设计及算法入门实战,帮助解决真实场景下垃圾分类数据难获取、标注格式不统一的问题。压缩包共2000个文件,约410.27MB,以1985个xml标注文…

2026/9/23 16:48:46 阅读更多 →
ENSP校园网课程设计全流程:VLAN规划到静态路由配置拆解

ENSP校园网课程设计全流程:VLAN规划到静态路由配置拆解

简介:ENSP组建校园局域网课程设计报告以PDF形式提供,面向网络工程、计算机及相关专业学生,重点解决校园局域网从需求分析到方案设计的完整流程问题。报告围绕学校教学、科研与管理需求,系统梳理终端接入数量与位置分布、组网技术选…

2026/9/23 16:48:46 阅读更多 →

最新新闻

b612下载避坑指南:3个技巧搞定实战项目

b612下载避坑指南:3个技巧搞定实战项目

b612下载避坑指南:3个技巧搞定实战项目 官方文档翻了三遍还是没抓住重点?别慌。很多老手在接 实战项目 时,都卡在b612下载这一步,明明代码看着对,一运行就报错。其实问题往往出在版本兼容和环境配置上,而不是你不够聪明。…

2026/9/23 17:36:58 阅读更多 →
相空间重构与三维重构:延迟时间与嵌入维数的工程实践

相空间重构与三维重构:延迟时间与嵌入维数的工程实践

简介:面向时间序列分析与非线性动力学研究的MATLAB源码包,专门实现三维相空间重构,适用于信号处理、混沌系统分析及机器学习特征提取等场景。压缩包共11个文件,包含4个m核心算法脚本、3张重构效果图、txt时间序列数据、md说明文档…

2026/9/23 17:36:58 阅读更多 →
读懂世界上最神奇的3本书性能优化避坑指南

读懂世界上最神奇的3本书性能优化避坑指南

读懂世界上最神奇的3本书性能优化避坑指南 官方文档太长抓不住重点?别慌,这篇避坑指南帮你把《世界上最神奇的3本书》里的性能优化精髓,浓缩成能直接抄的代码。 性能瓶颈:你以为的慢,其实是假象…

2026/9/23 17:36:58 阅读更多 →
电商评论情感分析实战:Python分词、模型训练与评估全流程

电商评论情感分析实战:Python分词、模型训练与评估全流程

简介:这是一份电商产品评论情感分析Python项目源码,适合NLP入门者、数据挖掘学习者及电商运营分析人员使用。无论是课程设计、毕业设计还是电商场景下的评论挖掘实践,都可从中获得完整参考。包内覆盖中文评论数据预处理、情感词典构建、TF-ID…

2026/9/23 17:36:58 阅读更多 →
基于Python和OpenMV的车牌识别系统:从图像采集到字符识别全流程

基于Python和OpenMV的车牌识别系统:从图像采集到字符识别全流程

简介:这份资源面向嵌入式视觉与智能小车方向的初学者及竞赛选手,提供一套基于Python与OpenMV的车牌识别系统源码,用于解决摄像头实时采集小车车牌、记录拍照时间与车辆图片等需求。压缩包共12个文件,约316KB,包含2个py…

2026/9/23 17:36:57 阅读更多 →
积羽沉舟与版本升级:3个高频面试题讲透底层

积羽沉舟与版本升级:3个高频面试题讲透底层

积羽沉舟与版本升级:3个高频面试题讲透底层 版本升级后 API 全变了,你盯着报错日志发呆时,是否想过这是积羽沉舟的过程?那些看似微不足道的废弃警告,最终汇聚成项目崩溃的洪流。这不仅是开发者的噩梦,更是高频面试题中考察架构思维的绝佳切口。…

2026/9/23 17:35:56 阅读更多 →

日新闻

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

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

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

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →