小程序

微信小程序采用模块化文件结构,每个文件类型承担特定功能。以下是标准小程序项目各核心文件的含义及作用:


一、根目录文件(全局配置)

文件 类型 作用
app.js JavaScript 小程序入口文件 ,定义全局逻辑: - 声明全局变量(如 globalData) - 监听生命周期(onLaunch, onShow, onHide
app.json JSON 全局配置 : - pages:注册所有页面路径(自动生成对应文件) - window:导航栏/背景色等窗口样式 - tabBar:底部导航栏配置
app.wxss CSS 全局样式(可选),定义公共样式规则,会被所有页面继承
project.config.json JSON 项目个性化配置: - 开发者工具设置(编译模式、端口号) - AppID、项目名称等元数据
sitemap.json JSON 搜索引擎索引规则: - 控制哪些页面允许被微信搜索收录

二、页面文件(pages/目录下)

每个页面由4个同名文件组成(必须位于同名目录):

文件 类型 作用
page.js JavaScript 页面逻辑 : - 定义数据(data) - 生命周期(onLoad, onShow) - 事件处理函数
page.json JSON 页面级配置 (可选): - 覆盖 app.json 中的 window 配置(如单独设置导航栏标题)
page.wxml XML 页面结构模板 : - 使用小程序组件(如 <view>, <image>) - 数据绑定({{data}})和逻辑判断(wx:if
page.wxss CSS 页面样式 (可选): - 仅作用于当前页面,优先级高于 app.wxss

三、其他关键目录

目录/文件 作用
utils/ 存放工具类文件(如日期格式化、网络请求封装): ```javascript // utils/http.js const request = (url) => { ... } export { request }
components/ 存放自定义组件 : - 每个组件同样由 .js, .json, .wxml, .wxss 组成 - 需在 page.json 中通过 usingComponents 引入
images/ 存放静态图片资源(建议使用绝对路径 /images/logo.png 引用)

四、代码示例

1. app.json 示例(配置页面和底部导航)

json

复制

json 复制代码
{
  "pages": [
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window": {
    "navigationBarTitleText": "Demo",
    "navigationBarBackgroundColor": "#ffffff"
  },
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "日志"
      }
    ]
  }
}

2. page.wxml 数据绑定

html

复制

xml 复制代码
<view class="container">
  <text>{{message}}</text>
  <button bindtap="changeText">点击修改</button>
</view>

运行 HTML

3. page.js 数据与事件

javascript

复制

css 复制代码
Page({
  data: {
    message: "Hello World"
  },
  changeText() {
    this.setData({ message: "文本已更新!" });
  }
});

五、关键注意事项

  1. 文件命名规范

    • 页面目录名和文件名必须完全一致(如 pages/home/home
    • JSON 文件不能有注释(与标准 JSON 格式要求一致)
  2. 样式隔离

    • 页面样式(.wxss)默认只影响当前页面 ,可通过 app.wxss 设置全局样式
    • 使用 !important 提高优先级
  3. 组件通信

    • 父子组件通过 properties 传递数据
    • 子组件通过 triggerEvent 向父组件发送事件
相关推荐
米饭同学i3 小时前
微信小程序实现动态环形进度条组件
前端·微信小程序
luffy545910 小时前
微信小程序实现图片横向滑动的示例
微信小程序·小程序
棒棒的唐10 小时前
使用微信小程序版Vant的upload组件上传身份证的样式自定义方案(Css魔改版)
css·微信小程序·小程序
计算机毕设指导61 天前
基于微信小程序的丽江市旅游分享系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·旅游
程序媛徐师姐1 天前
Java基于微信小程序的鲜花销售系统,附源码+文档说明
java·微信小程序·鲜花销售小程序·java鲜花销售小程序·鲜花销售微信小程序·java鲜花销售系统小程序·java鲜花销售微信小程序
難釋懷1 天前
微信小程序案例 - 自定义 tabBar
微信小程序·小程序·notepad++
计算机毕设指导61 天前
基于微信小程序的咖啡店点餐系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
计算机程序设计小李同学2 天前
婚纱摄影集成管理系统小程序
java·vue.js·spring boot·后端·微信小程序·小程序
计算机徐师兄3 天前
Java基于微信小程序的食堂线上预约点餐系统【附源码、文档说明】
java·微信小程序·食堂线上预约点餐系统小程序·食堂线上预约点餐微信小程序·java食堂线上预约点餐小程序·食堂线上预约点餐小程序·食堂线上预约点餐系统微信小程序
毕设源码-邱学长3 天前
【开题答辩全过程】以 基于微信小程序的松辽律所咨询系统的设计与实现为例,包含答辩的问题和答案
微信小程序·小程序