微信小程序开发学习笔记

微信小程序开发学习笔记

一、基础结构

项目结构

  • app.js:小程序入口文件(生命周期、全局数据)
  • app.json:全局配置(页面路由、窗口样式、tabBar 等)
  • app.wxss:全局样式
  • pages/:存放页面文件(每个页面包含.js、.json、.wxml、.wxss)

配置文件(app.json)

json 复制代码
{
  "pages": ["pages/index/index", "pages/logs/logs"],
  "window": {
    "navigationBarTitleText": "我的小程序",
    "navigationStyle": "custom"
  },
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      }
    ]
  }
}

二、常用组件

视图组件

  • <view>:容器(类似 div)
  • <swiper>:轮播图
  • <scroll-view>:可滚动区域
  • <movable-view>:可移动视图

表单组件

  • <input>:输入框
  • <picker>:选择器(日期、时间、列表)
  • <form>:表单提交
  • <checkbox>/<radio>:多选 / 单选

导航组件

  • <navigator>:页面跳转
  • <button>:按钮(可绑定open-type实现授权、客服等功能)

三、API 常用功能

网络请求

javascript 复制代码
wx.request({
  url: 'https://api.example.com/data',
  method: 'GET',
  success(res) {
    console.log(res.data);
  },
  fail(err) {
    console.error(err);
  }
});

数据缓存

javascript 复制代码
// 存储
wx.setStorageSync('key', 'value');
// 获取
const value = wx.getStorageSync('key');

用户信息

javascript 复制代码
wx.getUserProfile({
  desc: '用于完善会员资料',
  success(res) {
    console.log(res.userInfo);
  }
});

支付功能

javascript 复制代码
wx.requestPayment({
  timeStamp: '时间戳',
  nonceStr: '随机字符串',
  package: '统一下单接口返回的package参数',
  signType: 'HMAC-SHA256',
  paySign: '签名',
  success(res) {
    console.log('支付成功');
  }
});

四、框架与工具

框架

  • uniapp:跨平台开发框架(支持微信 / 支付宝 / APP 等)
  • Taro:React 语法开发小程序
  • Wepy:类 Vue 框架

开发者工具

  • 模拟器:调试不同设备
  • 调试器:实时查看 WXML、JS、样式
  • 性能分析:检测内存、渲染性能

五、开发流程

  • 注册小程序:微信公众平台(mp.weixin.qq.com
  • 创建项目:微信开发者工具扫码登录
  • 开发与调试:使用npm安装依赖,通过wx:for、wx:if等指令动态渲染
  • 代码提交:上传代码至微信服务器
  • 审核与发布:提交审核,通过后发布

六、最佳实践

代码规范 :使用eslint或prettier统一代码风格
性能优化

  • 减少setData调用次数
  • 使用wx:key优化列表渲染
  • 图片压缩(image组件设置mode)

调试技巧

  • console.log输出调试信息
  • 使用wx.showToast提示用户
  • 开启debug模式(app.js中设置debug: true)

七、常见问题

路由跳转:

  • wx.navigateTo:保留当前页面,跳转到新页面
  • wx.redirectTo:关闭当前页面,跳转到新页面
  • wx.navigateBack:返回上一页

权限问题:

  • 需在app.json中声明权限(如地理位置、相机)
  • 调用敏感 API 前需先授权
  • 兼容性:
  • 避免使用 H5 特有的 API
  • 使用rpx单位适配不同屏幕

八、参考资源

九、项目

点餐小程序项目的目录结构

主要目录说明

项目根目录/

├── pages/ # 页面文件夹

│ ├── index/ # 首页

│ │ ├── index.vue # 首页组件

│ │ └── index.json # 首页配置

│ ├── menu/ # 点餐页

│ │ ├── menu.vue # 点餐页组件

│ │ └── menu.json # 点餐页配置

│ ├── my/ # 我的页面

│ │ ├── my.vue # 我的页面组件

│ │ └── my.json # 我的页面配置

│ ├── login/ # 登录页

│ │ ├── login.vue # 登录页组件

│ │ └── login.json # 登录页配置

│ └── order-detail/ # 订单详情页

│ ├── order-detail.vue # 订单详情组件

│ └── order-detail.json # 订单详情配置

├── static/ # 静态资源目录

│ ├── logo.png # 应用logo

│ └── tabbar/ # 底部导航栏图标

│ └── icons.js # 图标SVG组件

├── unpackage/ # 编译后的文件目录

│ └── dist/ # 各平台的打包文件

│ └── dev/ # 开发版本

│ └── mp-weixin/ # 微信小程序相关文件

├── manifest.json # 应用配置文件

└── pages.json # 页面路由配置文件

pages/ - 页面文件夹

index/ - 首页,展示推荐菜品和功能入口

menu/ - 点餐页,展示菜品分类和列表

my/ - 个人中心页面,用户信息和功能入口

login/ - 登录页面,处理用户登录

order-detail/ - 订单详情页,显示订单信息

static/ - 静态资源目录

存放图片、图标等静态资源

tabbar/ 存放底部导航栏相关资源

unpackage/ - 编译目录

存放编译后的代码和资源

不需要手动修改此目录

配置文件

manifest.json - 应用的配置文件,包含应用信息、权限等

pages.json - 页面路由配置,定义页面路径、窗口样式、底部导航等

主要功能:

首页 - 展示推荐菜品和快捷入口

点餐 - 提供菜品分类浏览和下单功能

我的 - 个人中心,包含订单管理和其他功能

登录 - 用户登录和授权

订单详情 - 查看订单信息和状态

基础图片:/static/

├── logo.png # 应用logo,用于登录页和导航栏

└── default-avatar.png # 默认头像图片

菜品图片(menu.vue 中使用):

热销套餐:

  • 香辣鸡腿堡套餐
  • 双层牛肉堡套餐
  • 招牌炒面套餐
  • 红烧牛肉面套餐

麻辣卤味:

  • 卤牛肉
  • 麻辣牛肉
  • 卤鸭翅
  • 卤鸭脖
  • 卤猪耳
  • 卤鸡爪

风味凉菜:

  • 凉拌黄瓜
  • 凉拌木耳
  • 口水鸡
  • 夫妻肺片
  • 凉拌海带丝
  • 凉拌土豆丝

招牌面食:

  • 重庆小面
  • 担担面
  • 阳春面
  • 牛肉面
  • 炸酱面
  • 葱油拌面

家常菜:

  • 红烧肉
  • 糖醋里脊
  • 鱼香肉丝
  • 宫保鸡丁
  • 麻婆豆腐
  • 青椒土豆丝
  • 水煮肉片
  • 回锅肉

主食:

  • 香辣鸡腿堡
  • 双层牛肉堡
  • 米饭
  • 馒头

小食:

  • 薯条
  • 鸡块
  • 炸鸡翅
  • 洋葱圈

饮料:

  • 可乐
  • 雪碧
  • 果汁
  • 奶茶

首页轮播图(index.vue 中使用):

/static/banners/

├── banner1.jpg # 轮播图1

├── banner2.jpg # 轮播图2

└── banner3.jpg # 轮播图3

推荐商品图片(index.vue 中使用):

  • 香辣鸡腿堡
  • 双层牛肉堡
  • 巨无霸

总计需要:

基础图片:2张

菜品图片:38张

轮播图:3张

推荐商品图片:3张

项目并不完整,后期完善发布

相关推荐
一只乔哇噻7 分钟前
java后端工程师进修ing(研一版 || day41)
java·开发语言·学习·算法
知识分享小能手21 分钟前
React学习教程,从入门到精通,React 使用属性(Props)创建组件语法知识点与案例详解(15)
前端·javascript·vue.js·学习·react.js·前端框架·vue
大筒木老辈子1 小时前
Linux笔记---协议定制与序列化/反序列化
网络·笔记
草莓熊Lotso1 小时前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他
我爱挣钱我也要早睡!4 小时前
Java 复习笔记
java·开发语言·笔记
知识分享小能手7 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
汇能感知9 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun9 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao9 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾9 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang