面向零基础初学者,从环境搭建到发布上线,手把手教你开发第一个微信小程序(第3章-认识项目结构)

3.1 整体目录结构

微信小程序采用固定的项目结构:

复制代码
gov-sms-helper/              ← 项目根目录
├── app.js                   ← 应用入口(必须)
├── app.json                 ← 应用配置(必须)
├── app.wxss                 ← 全局样式(非必须)
├── project.config.json      ← 项目配置文件(工具自动生成)
├── sitemap.json             ← 站点地图配置
│
├── pages/                   ← 页面文件夹
│   ├── index/               ← 首页
│   │   ├── index.wxml       ← 页面结构
│   │   ├── index.wxss       ← 页面样式
│   │   ├── index.js         ← 页面逻辑
│   │   └── index.json        ← 页面配置
│   │
│   ├── history/             ← 历史记录页
│   │   └── ...
│   │
│   └── settings/            ← 设置页
│       └── ...
│
├── components/              ← 组件文件夹
│   ├── sms-preview/
│   │   ├── sms-preview.wxml
│   │   ├── sms-preview.wxss
│   │   └── sms-preview.js
│   └── template-card/
│       └── ...
│
├── utils/                   ← 工具函数文件夹
│   ├── greeting.js          ← 问候语生成
│   ├── sms-generator.js     ← 短信生成
│   └── storage.js           ← 存储工具
│
├── config/                  ← 配置文件夹
│   └── templates.js          ← 模板配置
│
└── assets/                  ← 静态资源文件夹
    └── icons/               ← 图标资源
  • 在开发者工具中展开目录树

3.2 必须的文件

微信小程序必须包含两个文件:

文件 位置 作用
app.js 根目录 应用入口,定义全局数据
app.json 根目录 应用全局配置

其他文件都是可选的。

app.js - 应用入口

javascript 复制代码
// app.js
App({
  onLaunch() {
    // 小程序启动时执行
    console.log('小程序启动了')
  },

  globalData: {
    // 全局共享的数据
    userInfo: null,
    settings: null
  }
})
  • 标注:onLaunch 生命周期函数

app.json - 应用配置

json 复制代码
{
  "pages": [
    "pages/index/index",      // 页面路径
    "pages/history/history",
    "pages/settings/settings"
  ],
  "window": {
    "navigationBarTitleText": "政务短信助手"
  }
}
  • 标注:pages 数组定义所有页面

pages数组中的第一个页面是小程序的首页。


3.3 页面的四种文件

每个页面都必须有.js文件,其他三种文件可选:

文件 必须 作用
.js 页面逻辑、数据、事件处理
.wxml - 页面结构(类似HTML)
.wxss - 页面样式(类似CSS)
.json - 页面私有配置

页面的四种文件示例

javascript 复制代码
// pages/index/index.js
Page({
  data: {
    message: 'Hello World'
  }
})
html 复制代码
<!-- pages/index/index.wxml -->
<view>{{message}}</view>
css 复制代码
/* pages/index/index.wxss */
view {
  color: #333;
}
json 复制代码
/* pages/index/index.json */
{
  "navigationBarTitleText": "首页"
}

3.4 组件结构

组件是可供页面复用的UI部件,结构与页面类似:

复制代码
components/
└── sms-preview/           ← 组件名
    ├── sms-preview.wxml   ← 组件结构
    ├── sms-preview.wxss   ← 组件样式
    └── sms-preview.js     ← 组件逻辑

组件与页面的区别

区别 页面 组件
创建方式 右键新建页面 右键新建组件
使用方式 在app.json中注册 在页面.json中引用
复用性 每个页面唯一 可被多个页面引用
  • 对比展示页面和组件的文件结构

3.5 工具函数

utils/ 文件夹用于存放可复用的JavaScript函数:

javascript 复制代码
// utils/greeting.js

/**
 * 获取当前时间的问候语
 * @returns {string} 问候语
 */
function getGreeting() {
  const hour = new Date().getHours()

  if (hour < 12) return '早上好'
  if (hour < 14) return '中午好'
  if (hour < 18) return '下午好'
  return '晚上好'
}

module.exports = {
  getGreeting
}

使用工具函数

在页面中引入并使用:

javascript 复制代码
// pages/index/index.js
const { getGreeting } = require('../../utils/greeting.js')

Page({
  onLoad() {
    const greeting = getGreeting()
    console.log(greeting)  // 输出:下午好
  }
})
  • 标注:require 导入路径
  • 标注:使用工具函数

3.6 配置文件的优先级

小程序的配置有多个层级,优先级从高到低:

复制代码
页面配置 (index.json)   ← 最高优先级
    ↓
应用配置 (app.json)    ← 次优先级
    ↓
默认配置               ← 最底层默认值

示例:导航栏标题

  • app.json 定义 "navigationBarTitleText": "政务短信助手"
  • pages/index/index.json 定义 "navigationBarTitleText": "首页"

最终首页显示"首页",其他页面显示"政务短信助手"。


3.7 项目结构实践

现在你已经了解项目结构,接下来我们来添加新页面试试:

步骤1:新建页面

pages 文件夹上右键,选择"新建页面",输入名称 about

  • 标注:新建页面菜单
  • 标注:输入页面名

步骤2:观察变化

新建页面后:

  1. pages/about/ 文件夹自动创建
  2. 四个文件自动生成
  3. app.json 的 pages 数组自动添加新页面
  • 标注:自动生成的文件
  • 标注:app.json 自动更新

3.8 本章小结

✅ 理解了小程序的目录结构

✅ 掌握了必须文件 app.jsapp.json

✅ 学会了页面四种文件的区别与作用

✅ 了解了组件的结构

✅ 学会了使用工具函数


下一章:第4章 WXML入门 →

相关推荐
优睿远行2 小时前
微信小程序自定义组件开发实战:从封装到发布的全流程指南
微信小程序·小程序·notepad++
27669582922 小时前
某白山小程序限制PC端调试
python·小程序·apache·小程序逆向·某白山·限制pc调试
Greg_Zhong3 小时前
微信小程序中使用云函数调用豆包免费模型,部署云函数设置(触发器)执行每日自动生成书籍的文章赏析,完整过程
微信小程序·ai工程师·小程序中豆包模型调用·云函数配置触发器生成每日文章·微信云函数
eric*16883 小时前
微信小程序全局安全水印组件实践:支持动态更新、全局生效、自定义样式
微信小程序·小程序
Geek_Vison3 小时前
三款小程序容器技术选型对比分析——融媒新闻APP如何进行技术选型~
小程序·uni-app·app开发·finclip·小程序开发平台·跨端开发·小程序容器
Giggle12184 小时前
上门家政服务平台 | 多端协同,源码交付,用户端小程序+H5、服务端APP、管理后台
java·小程序·架构·产品运营·个人开发
盈建云系统4 小时前
小程序列表上拉加载更多 + 下拉刷新,一步到位实现
小程序
DK1858383225214 小时前
知识付费会员小程序/付费圈子系统——课程兑换码+会员体系完整实战,开源运营级方案
小程序·uni-app·开源·php
杰建云1671 天前
微信小程序自制全流程实测与避坑指南
微信小程序·小程序