当前位置: 首页 > article >正文

第二章 小程序目录结构与核心文件详解

第二章 小程序目录结构与核心文件详解 系列教程微信小程序投票系统完整开发 上一章第一章 - 微信小程序概述与开发准备 下一章第三章 - WXML 所有表单组件与使用2.1 完整目录结构wx/page/ ← 小程序根目录 ├── app.js ← 全局逻辑入口必须 ├── app.json ← 全局配置必须 ├── app.wxss ← 全局样式可选 ├── project.config.json ← 开发工具配置 ├── project.private.config.json ← 个人开发配置不提交 git ├── sitemap.json ← 搜索索引配置 └── pages/ ← 页面目录 ├── index/ ← 首页 │ ├── index.js ← 页面逻辑 │ ├── index.json ← 页面配置覆盖全局 │ ├── index.wxml ← 页面结构 │ └── index.wxss ← 页面样式 ├── create/ ← 创建投票页 │ ├── create.js │ ├── create.json │ ├── create.wxml │ └── create.wxss ├── vote/ ← 投票页 │ ├── vote.js │ ├── vote.json │ ├── vote.wxml │ └── vote.wxss └── result/ ← 结果页 ├── result.js ├── result.json ├── result.wxml └── result.wxss规律每个页面由4 个同名文件组成js / json / wxml / wxss其中 json 和 wxss 可以省略。2.2 app.json — 全局配置文件app.json是小程序的大脑配置控制页面路由、窗口外观、底部导航栏等。完整配置示例投票系统{{pages:[pages/index/index,pages/create/create,pages/vote/vote,pages/result/result],window:{backgroundTextStyle:light,navigationBarBackgroundColor:#6C63FF,navigationBarTitleText:统计小工具,navigationBarTextStyle:white,backgroundColor:#f5f5f5},style:v2,sitemapLocation:sitemap.json}pages 配置说明pages:[pages/index/index,← 第一个页面是默认首页启动页pages/create/create,pages/vote/vote,pages/result/result]技巧在app.json的pages数组中新增一行路径保存后开发者工具会自动创建对应的页面文件夹和4个文件非常方便。window 配置说明配置项值说明backgroundTextStylelight下拉 loading 的样式仅支持dark/lightnavigationBarBackgroundColor#6C63FF导航栏背景颜色十六进制代码navigationBarTitleText统计小工具导航栏标题文字内容navigationBarTextStylewhite导航栏标题颜色仅支持black/whitebackgroundColor#f5f5f5窗口的背景色页面内容的背景色2.3 app.js — 全局逻辑文件app.js是整个小程序的入口负责全局状态管理和生命周期处理。结构模板App({// 全局数据类似 Vuex/Redux 的 stateglobalData:{userInfo:null,openid:,baseUrl:https://www.chinahanwucun.cn,// 内部状态约定 _ 开头_openidReady:false,_openidCallbacks:[]},// 生命周期 onLaunch(options){// 冷启动时触发小程序首次打开// options.scene 场景值1001发现页1005顶部搜索等// options.query 启动参数// options.path 启动页面路径console.log(小程序启动,options)},onShow(options){// 每次切换到前台都触发},onHide(){// 切换到后台按 Home 键或切换到其他 App},onError(msg){// 全局 JS 错误监听console.error(全局错误:,msg)},onPageNotFound(res){// 页面不存在比如分享链接对应的页面被删除了wx.redirectTo({url:/pages/index/index})},// 自定义全局方法 getOpenid(callback){if(this.globalData._openidReady){callback(this.globalData.openid)}else{this.globalData._openidCallbacks.push(callback)}}})在页面中使用 app.js 的数据和方法// 页面 .js 文件头部constappgetApp()Page({onLoad(){// 访问全局数据console.log(app.globalData.baseUrl)// 调用全局方法app.getOpenid(openid{console.log(openid:,openid)})}})2.4 app.wxss — 全局样式全局样式中定义的类名所有页面都可以直接使用无需 import。/* app.wxss */page{background-color:#f5f6fa;font-family:-apple-system,PingFang SC,Helvetica Neue,sans-serif;font-size:28rpx;color:#333;}/* 通用卡片 */.card{background:#fff;border-radius:20rpx;padding:32rpx;margin:24rpx 24rpx 0;box-shadow:0 4rpx 20rpxrgba(0,0,0,0.06);}/* 通用按钮 */.btn-primary{background:linear-gradient(135deg,#6C63FF,#9B8FFF);color:#fff;border-radius:50rpx;font-size:32rpx;font-weight:600;border:none;padding:0 60rpx;height:88rpx;line-height:88rpx;letter-spacing:2rpx;box-shadow:0 8rpx 24rpxrgba(108,99,255,0.35);}.btn-primary::after{border:none;}.btn-outline{background:transparent;color:#6C63FF;border:2rpx solid #6C63FF;border-radius:50rpx;font-size:28rpx;padding:0 40rpx;height:72rpx;line-height:72rpx;}.btn-outline::after{border:none;}2.5 页面 .json 配置文件每个页面可以有自己的.json文件覆盖app.json中window的配置。{navigationBarTitleText:发起投票,navigationBarBackgroundColor:#07C160,navigationBarTextStyle:white,enablePullDownRefresh:true,backgroundTextStyle:light,usingComponents:{}}usingComponents用于引入自定义组件暂时留空即可。2.6 sitemap.json — 搜索配置控制小程序页面是否允许被微信搜索索引微信搜索功能。{desc:关于本文件的更多信息请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html,rules:[{action:allow,page:*}]}2.7 project.config.json — 工具配置{appid:你的AppID,projectname:vote-miniprogram,compileType:miniprogram,libVersion:3.4.8,setting:{urlCheck:true,es6:true,enhance:true,postcss:true,preloadBackgroundData:false,minified:true}}2.8 页面文件的编写顺序建议开发一个新页面的推荐顺序1. 在 app.json 的 pages 中添加路径 → 自动生成文件 2. 在 .json 中配置导航栏标题 3. 在 .js 的 data 中定义页面数据结构 4. 在 .wxml 中写页面骨架先不加样式 5. 在 .wxss 中完善样式 6. 回到 .js 中完善逻辑onLoad、事件处理等本章小结✅ 掌握了小程序完整的目录结构✅ 理解了app.json中页面路由、窗口配置、tabBar 的写法✅ 学会了app.js的全局生命周期和全局数据管理✅ 掌握了app.wxss的全局样式定义方式✅ 了解了各配置文件的作用和编写顺序下一章深入学习 WXML 的所有表单组件这是构建投票界面的基础。

相关文章:

第二章 小程序目录结构与核心文件详解

第二章 小程序目录结构与核心文件详解 📚 系列教程:微信小程序投票系统完整开发 🔗 上一章:第一章 - 微信小程序概述与开发准备 🔗 下一章:第三章 - WXML 所有表单组件与使用 2.1 完整目录结构 wx/page/ …...

VMware Unlocker 3.0技术深度解析:如何在非苹果硬件上运行macOS虚拟机的实现原理与实战指南

VMware Unlocker 3.0技术深度解析:如何在非苹果硬件上运行macOS虚拟机的实现原理与实战指南 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker VMware Unlocker 3.0是一个专门为VMware Worksta…...

第一章 微信小程序概述与开发准备

第一章 微信小程序概述与开发准备 📚 系列教程:微信小程序投票系统完整开发 🔗 上一章:无 🔗 下一章:第二章 - 小程序目录结构与核心文件详解 1.1 什么是微信小程序 微信小程序(Mini Program&a…...

【最新 v2.7.5 版本安装包】OpenClaw 零基础部署秘籍,无需命令零代码一键安装轻松搞定

🚀 OpenClaw 一键安装包|一键部署甩掉复杂环境配置 📌 适配信息 适配系统:Windows10/11 64 位 当前版本:v2.7.5(虾壳云版) ✨ 核心优势 全程可视化操作,不用命令行、不用手动配置…...

哔咔漫画下载器:3步打造个人离线漫画库,告别网络限制烦恼

哔咔漫画下载器:3步打造个人离线漫画库,告别网络限制烦恼 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://g…...

终极Python通达信数据读取指南:5分钟快速入门量化分析

终极Python通达信数据读取指南:5分钟快速入门量化分析 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在金融数据分析和量化交易领域,通达信数据读取一直是Python开发者面临…...

STC8H单片机低功耗实战:用掉电模式和外部中断,让电池续航翻倍

STC8H单片机低功耗实战:用掉电模式和外部中断,让电池续航翻倍 在电池供电的嵌入式设备开发中,功耗控制往往是决定产品成败的关键因素。想象一下,一款设计精良的便携式环境监测仪,如果因为功耗问题导致频繁更换电池&am…...

Day 2|项目目录与多布局、路由与权限守卫:从结构到落地代码

1. 目标与产出 明确中后台项目目录分层与职责边界。落地多布局(主布局/业务布局),沉淀可复用容器组件。设计路由与权限模型(角色/权限点),实现路由守卫与菜单联动。产出可复用的 Pinia 权限状态、权限指令、…...

紫光同创PGL22G开发板DDR3读写实验:从IP核安装到上板验证的保姆级避坑指南

紫光同创PGL22G开发板DDR3读写实验全流程实战解析 第一次接触国产FPGA平台进行DDR3内存控制实验时,很多开发者都会遇到各种"坑"。本文将基于紫光同创PGL22G开发板,从IP核安装到最终上板验证,手把手带你避开那些容易出错的关键环节。…...

CursorLearn2API:基于AI辅助编程的本地代码自动化部署为云端API实践

1. 项目概述:从本地代码到云端API的自动化桥梁最近在折腾一个挺有意思的项目,叫gmh5225/cursorlearn2api。乍一看这个标题,可能有点摸不着头脑,但如果你是一个经常在本地用 Cursor 这类 AI 辅助编程工具写代码,同时又想…...

ThinkPad风扇控制终极指南:TPFanCtrl2让你的笔记本既静音又凉爽

ThinkPad风扇控制终极指南:TPFanCtrl2让你的笔记本既静音又凉爽 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 你是否曾因ThinkPad风扇的突然轰鸣而分心&a…...

循迹小车传感器布局与状态机编程避坑指南:从5路红外到精准过直角弯

循迹小车传感器布局与状态机编程避坑指南:从5路红外到精准过直角弯 在智能小车开发领域,循迹功能是最基础也最具挑战性的环节之一。许多创客和学生在完成硬件搭建后,往往会陷入软件调试的泥潭——小车要么频繁偏离轨道,要么在直角…...

ESP32 ADC采样率上不去?实测DMA模式下的真实性能与避坑指南

ESP32 ADC DMA模式性能深度优化:突破2MSPS采样率的关键策略 在物联网边缘计算领域,ESP32凭借其出色的性价比和丰富的外设资源,已成为众多高速数据采集项目的首选方案。当开发者尝试将ESP32的ADC采样率推向理论极限时,往往会遭遇现…...

如何快速掌握智能游戏伴侣:3步上手的完整实战指南

如何快速掌握智能游戏伴侣:3步上手的完整实战指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟中的繁琐操作而烦…...

组合模式实战:统一处理树形结构,提升代码简洁性与可维护性

1. 项目概述:从“树”到“森林”的统一管理哲学在软件开发的日常里,我们常常会遇到一种让人头疼的结构:部分与整体的层次关系。想象一下,你正在开发一个图形界面系统,里面有简单的按钮、文本框,也有复杂的面…...

WorkshopDL完全指南:三步实现跨平台游戏模组下载的终极解决方案

WorkshopDL完全指南:三步实现跨平台游戏模组下载的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在Epic、GOG等非Steam平台购买了游戏&#xf…...

如何快速构建高质量平行语料库:Lingtrain Aligner智能文本对齐完全指南

如何快速构建高质量平行语料库:Lingtrain Aligner智能文本对齐完全指南 【免费下载链接】lingtrain-aligner Lingtrain Aligner — ML powered library for the accurate texts alignment. 项目地址: https://gitcode.com/gh_mirrors/li/lingtrain-aligner 平…...

Cortex-M内存管理库:嵌入式开发中替代malloc的确定性与安全性方案

1. 项目概述:一个为Cortex-M系列MCU量身定制的内存管理库如果你在嵌入式领域,特别是基于ARM Cortex-M内核的微控制器(MCU)上做过项目,大概率遇到过内存管理的难题。标准C库的malloc和free在资源受限的MCU上表现往往不尽…...

《流浪的梦想家》的传播入口:漂泊感如何形成记忆点

从内容传播角度看,《流浪的梦想家》的入口在两个词的拉扯:流浪意味着还在路上,梦想家意味着心里仍有方向。这个反差足够形成记忆点。这首歌不适合被写成空泛远方。更准确的场景,是一个人背着行李、换城市、换工作、或者在深夜车窗…...

2026春招AI人才争夺战白热化!小白程序员如何抓住13万高薪机遇?速收藏!

2026年春招显示AI领域岗位量同比增长8.7倍,成为职场新风口。具身智能岗位薪资暴增,AI科学家月薪高达13.2万元。高薪AI岗位紧缺,程序员需拥抱AI工具提升竞争力,否则面临被替代风险。AI能力已成为职场基础设施,不学AI可能…...

Windows下pthread开发环境搭建:MinGW-w64与winpthreads实战指南

1. 项目概述:为什么要在Windows上折腾pthread?如果你是一个从Linux或Unix环境转向Windows平台的C/C开发者,第一次在Windows上尝试编译一个依赖pthread(POSIX线程)库的老项目时,大概率会碰一鼻子灰。编译器会…...

Postman便携版终极指南:绿色免安装的Windows API测试工具

Postman便携版终极指南:绿色免安装的Windows API测试工具 【免费下载链接】postman-portable 🚀 Postman portable for Windows 项目地址: https://gitcode.com/gh_mirrors/po/postman-portable Postman便携版是一款专为Windows用户设计的绿色免安…...

WinFlexBison深度解析:Windows平台编译工具链的完整解决方案

WinFlexBison深度解析:Windows平台编译工具链的完整解决方案 【免费下载链接】winflexbison Main winflexbision repository 项目地址: https://gitcode.com/gh_mirrors/wi/winflexbison 在Windows平台上开发编译器、解释器或复杂文本解析器时,开…...

如何快速获取全网音乐歌词:免费开源工具的终极指南

如何快速获取全网音乐歌词:免费开源工具的终极指南 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到心爱歌曲的歌词而烦恼吗?163Music…...

别再死记硬背了!用Python+Control库,5分钟可视化开环零极点对根轨迹的实际影响

用Python可视化开环零极点对根轨迹的动态影响 在传统控制理论教学中,根轨迹分析往往停留在纸面推导和静态图表上,让学生陷入复杂的相角条件和幅值计算中。这种抽象的学习方式容易造成"学完就忘"的困境——你或许能背诵"增加开环零点会使根…...

新手教程使用Python快速接入Taotoken调用多款大模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 新手教程使用Python快速接入Taotoken调用多款大模型 对于刚接触大模型API的开发者而言,直接对接不同厂商的API往往意味…...

LLM函数调用工程化:从基础概念到智能体框架设计实战

1. 项目概述:从“函数调用”到智能体交互的范式演进最近在GitHub上看到一个名为“SKY-lv/function-calling”的项目,这个标题乍一看平平无奇,甚至有些过于直白。但作为一名长期混迹在AI应用开发一线的工程师,我立刻嗅到了一丝不寻…...

U-Boot MMC DM驱动移植实战:从设备树配置到调试排错

1. 项目概述与核心价值最近在为一个基于i.MX6UL的工控板卡适配新的eMMC存储芯片时,又和U-Boot的MMC驱动打了一次交道。这让我想起,很多嵌入式开发者在进行板级移植或更换存储介质时,面对U-Boot中那套基于设备模型(Device Model, D…...

备战蓝桥杯别只刷题了!用2023年JavaB组真题手把手教你锻炼“竞赛思维”

从2023年蓝桥杯JavaB组真题看竞赛思维的三大核心能力 在算法竞赛的征途上,许多选手常常陷入"题海战术"的误区,认为刷题数量直接决定比赛成绩。然而,2023年第十四届蓝桥杯JavaB组的真题却向我们揭示了一个更深刻的真相:竞…...

对比Taotoken与直接购买官方API在账单清晰度上的差异

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比Taotoken与直接购买官方API在账单清晰度上的差异 效果展示类,从个人开发者或小团队的实际使用经历出发&#xff0c…...