微信小程序开发学习笔记

微信小程序开发学习笔记

  • 一、基础结构
    • 项目结构
    • 配置文件(app.json)
  • 二、常用组件
    • 视图组件
    • 表单组件
    • 导航组件
  • 三、API 常用功能
    • 网络请求
    • 数据缓存
    • 用户信息
    • 支付功能
  • 四、框架与工具
    • 框架
    • 开发者工具
  • 五、开发流程
  • 六、最佳实践
  • 七、常见问题
    • 路由跳转:
    • 权限问题:
  • 八、参考资源
  • 九、项目

一、基础结构

项目结构

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

配置文件(app.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 常用功能

网络请求

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

数据缓存

// 存储
wx.setStorageSync('key', 'value');
// 获取
const value = wx.getStorageSync('key');

用户信息

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

支付功能

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张

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27275.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】

今天尝试在pycharm上接入了本地部署的deepseek&#xff0c;实现了AI编程&#xff0c;体验还是很棒的。下面详细叙述整个安装过程。 本次搭建的框架组合是 DeepSeek-r1:1.5b/7b Pycharm专业版或者社区版 Proxy AI&#xff08;CodeGPT&#xff09; 首先了解不同版本的deepsee…

Spring MVC 程序开发(1)

目录 1、什么是 SpringMVC2、返回数据2.1、返回 JSON 对象2.2、请求转发2.3、请求重定向2.4、自定义返回的内容 1、什么是 SpringMVC 1、Tomcat 和 Servlet 分别是什么&#xff1f;有什么关系&#xff1f; Servlet 是 java 官方定义的 web 开发的标准规范&#xff1b;Tomcat 是…

Notepad++下载地址【亲测好用】

网上下载链接五花八门&#xff0c;最终找到了一个官方下载链接。 本文章就用来记录Notepad下载网址 https://github.com/notepad-plus-plus/notepad-plus-plus/tags

LeetCode 873. Length of Longest Fibonacci Subsequence(2025/2/27每日一题)

昨天工作耽搁了&#xff0c;没来得及打卡每日一题&#xff0c;今日补上&#xff1a; 标题&#xff1a;Length of Longest Fibonacci Subsequence 题目&#xff1a; 例子&#xff1a; Example 1: Input: arr [1,2,3,4,5,6,7,8] Output: 5 Explanation: The longest subsequ…

【uniapp】在UniApp中实现持久化存储:安卓--生成写入数据为jsontxt

在移动应用开发中&#xff0c;数据存储是一个至关重要的环节。对于使用UniApp开发的Android应用来说&#xff0c;缓存&#xff08;Cache&#xff09;是一种常见的数据存储方式&#xff0c;它能够提高应用的性能和用户体验。然而&#xff0c;缓存数据在用户清除缓存或清除应用数…

【小羊肖恩】小羊杯 Round 2 C+K

题目链接&#xff1a;https://ac.nowcoder.com/acm/contest/100672#question C.是毛毛虫吗&#xff1f; 思路&#xff1a; 其实很简单&#xff0c;假设我们要满足题目所给条件&#xff0c;那么这个毛毛虫最坏情况下肯定是一条如下图所示的无向图 右端省略号为对称图形 &…

【定昌Linux系统】部署了java程序,设置开启启动

将代码上传到相应的目录&#xff0c;并且配置了一个.sh的启动脚本文件 文件内容&#xff1a; #!/bin/bash# 指定JAR文件的路径&#xff08;如果JAR文件在当前目录&#xff0c;可以直接使用文件名&#xff09; JAR_FILE"/usr/local/java/xs_luruan_client/lib/xs_luruan_…

17、什么是智能指针,C++有哪几种智能指针【高频】

智能指针其实不是指针&#xff0c;而是一个&#xff08;模板&#xff09;类&#xff0c;用来存储指向某块资源的指针&#xff0c;并自动释放这块资源&#xff0c;从而解决内存泄漏问题。主要有以下四种&#xff1a; auto_ptr 它的思想就是当当一个指针对象赋值给另一个指针对…

基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践

目录 前言 1、研究背景 2、研究意义 一、研究目标 1、“地理难抵点”的概念 二、“难抵点”空间检索实现 1、数据获取与处理 2、计算流程 3、难抵点计算 4、WebGIS可视化 三、成果展示 1、华东地区 2、华南地区 3、华中地区 4、华北地区 5、西北地区 6、西南地…

Git学习

Git命令 1、管理文件夹&#xff0c;创建版本仓库 创建文件夹 mkdir repos初始化命令 git init2、查看工作区的文件状态 注&#xff1a;新增和修改过后的文件都是红色 git status3、提交缓存区 注&#xff1a;加入缓存区后的文件变成绿色 git add . git add 文件名4、生…

数据库拓展操作

目录 一、截断表&#xff1a; 操作目的&#xff1a; 操作内容&#xff1a; 性能影响&#xff1a; 基本语法&#xff1a; 例子&#xff1a; 二、插入查询结果&#xff1a; 基本语法&#xff1a; 例子&#xff1a; 三、聚合函数&#xff1a; 常用函数&#xff1a; 基…

【Java分布式】Nacos注册中心

Nacos注册中心 SpringCloudAlibaba 也推出了一个名为 Nacos 的注册中心&#xff0c;相比 Eureka 功能更加丰富&#xff0c;在国内受欢迎程度较高。 官网&#xff1a;https://nacos.io/zh-cn/ 集群 Nacos就将同一机房内的实例划分为一个集群&#xff0c;一个服务可以包含多个集…

鸿蒙兼容Mapbox地图应用测试

鸿蒙Next已经发布一段时间了&#xff0c;很多之前的移动端地图应用&#xff0c;纷纷都要求适配鸿蒙Next。作为开发者都清楚&#xff0c;所谓的适配其实都是重新开发&#xff0c;鸿蒙的开发语言和纯前端的Javascript不同&#xff0c;也可以Android原始开发的语言不同。鸿蒙自带的…

老牌工具,16年依然抗打!

在电脑还没普及、操作系统为Windows XP/7的时代&#xff0c;多媒体文件的转换操作常常面临格式不兼容的问题。这时一款名为格式工厂的软件成为了众多用户的首选工具。格式工厂以其简洁易用的界面和强大的功能&#xff0c;轻松地进行各种文件格式的转换。成为很多修小伙伴的喜爱…

前缀和算法 算法4

算法题中帮助复习的知识 vector<int > dp( n ,k); n为数组大小 ,k为初始化 哈希表unordered_map<int ,int > hash; hash.find(k)返回值是迭代器 ,找到k返回其迭代器 没找到返回hash.end() hash.count(k)返回值是数字 ,找到k返回1 ,没找到返回0. C和java中 负数…

如何使用Spring Boot框架整合Redis:超详细案例教程

目录 # 为什么选择Spring Boot与Redis整合&#xff1f; 1. 更新 pom.xml 2. 配置application.yml 3. 创建 Redis 配置类 4. Redis 操作类 5. 创建控制器 6. 启动应用程序 7. 测试 # 为什么选择Spring Boot与Redis整合&#xff1f; 将Spring Boot与Redis整合可以充分利…

DeepSeek开源周,第五弹再次来袭,3FS

Fire-Flyer 文件系统&#xff08;3FS&#xff09;总结&#xff1a; 一、核心特点 3FS 是一个专为 AI 训练和推理工作负载设计的高性能分布式文件系统&#xff0c;利用现代 SSD 和 RDMA 网络&#xff0c;提供共享存储层&#xff0c;简化分布式应用开发。其主要特点包括&#xf…

爬虫系列之【数据解析之JSON】《三》

目录 前置知识 一、 json.loads()&#xff1a;JSON 转 Python 数据 二、json.dump()&#xff1a;python数据 转 json 并写入文件 三、json.loads() &#xff1a;json 转 python数据 四、json.load() &#xff1a;json 转 python数据&#xff08;在文件操作中更方便&#xf…

FastExcel vs EasyExcel vs Apache POI:三者的全面对比分析

一、核心定位与历史沿革 Apache POI&#xff08;1990s-&#xff09; 作为Java生态中最古老的Excel处理库&#xff0c;提供对.xls/.xlsx文件的全功能支持。其核心价值在于对Excel规范的完整实现&#xff0c;包括单元格样式、公式计算、图表操作等深度功能。但存在内存消耗大&…

创建一个MCP服务器,并在Cline中使用,增强自定义功能。

MCP介绍 MCP 是一个开放协议&#xff0c;它标准化了应用程序如何向LLMs提供上下文。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种标准化的方法来将您的设备连接到各种外围设备和配件一样&#xff0c;MCP 提供了一种标准化的方法来将 AI 模型连接到不同的…