微信小程序项目初试总结

news2025/2/23 5:50:15

微信小程序项目初试总结

  • 准备工作
    • 注册小程序账号
    • 获取AppID
    • 下载 微信开发者工具
    • 下载 HBuilderX
    • 安装 scss/sass 编译
    • HBuilderX 的调试
    • 新建项目
    • 把项目运行到微信开发者工具
    • 使用 Git 管理项目
    • 把项目托管到码云
  • 模块制作
    • 通用
    • tabBar
    • 首页
    • 分类
    • 搜索
    • 商品列表
    • 商品详情
    • 加入购物车
    • 购物车页面
    • 登陆与支付
  • 发布
    • 发布小程序的流程
    • 发布为 Android App 的流程

准备工作

项目基于uni-app进行开发。uni-app 是一个使用 Vue.js 开发所有前端应用的框架。开发者编写一套代码,可发布到 iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。
开发工具: 微信开发者工具,HBuilderX

注册小程序账号

https://mp.weixin.qq.com/

获取AppID

登录->开发->开发设置->开发者ID->AppID

下载 微信开发者工具

https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html

下载 HBuilderX

访问 HBuilderX 的官网首页 https://www.dcloud.io/hbuilderx.html

点击首页的 DOWNLOAD 按钮

选择下载 正式版 -> App 开发版

安装 scss/sass 编译

https://ext.dcloud.net.cn/plugin?name=compile-node-sass

进入插件下载页面之后,点击右上角的 使用 HBuilderX 导入插件 按钮进行自动安装

HBuilderX 的调试

1.快捷键方案切换

操作步骤:工具 -> 预设快捷键方案切换 -> VS Code

2.修改编辑器的基本设置

操作步骤:工具 -> 设置 -> 打开 Settings.json 按需进行配置

源码视图下可用的参考配置:

{
  "editor.colorScheme": "Default",
  "editor.fontSize": 12,
  "editor.fontFamily": "Consolas",
  "editor.fontFmyCHS": "微软雅黑 Light",
  "editor.insertSpaces": true,
  "editor.lineHeight": "1.5",
  "editor.minimap.enabled": false,
  "editor.mouseWheelZoom": true,
  "editor.onlyHighlightWord": false,
  "editor.tabSize": 2,
  "editor.wordWrap": true,
  "explorer.iconTheme": "vs-seti",
  "editor.codeassist.px2rem.enabel": false,
  "editor.codeassist.px2upx.enabel": false
}

新建项目

请添加图片描述

请添加图片描述

把项目运行到微信开发者工具

1.填写自己的微信小程序的 AppID:
请添加图片描述

2.在 HBuilderX 中,配置“微信开发者工具”的安装路径:
请添加图片描述

3.在微信开发者工具中,通过 设置 -> 安全设置 面板,开启“微信开发者工具”的服务端口:
请添加图片描述

4.在 HBuilderX 中,点击菜单栏中的 运行 -> 运行到小程序模拟器 -> 微信开发者工具,将当前 uni-app 项目编译之后,自动运行到微信开发者工具中,从而方便查看项目效果与调试:
请添加图片描述

使用 Git 管理项目

1.在项目根目录中新建 .gitignore 忽略文件,并配置如下:

# 忽略 node_modules 目录
/node_modules
/unpackage/dist

注意:由于我们忽略了 unpackage 目录中仅有的 dist 目录,因此默认情况下,unpackage
目录不会被 Git 追踪

此时,为了让 Git 能够正常追踪 unpackage 目录,按照惯例,我们可以在 unpackage 目
录下创建一个叫做 .gitkeep 的文件进行占位

2.打开终端,切换到项目根目录中,运行如下的命令,初始化本地 Git 仓库:

git init

将所有文件都加入到暂存区:

git add .

本地提交更新:

git commit -m "init project"

把项目托管到码云

注册并激活码云账号( 注册页面地址:https://gitee.com/signup )

生成并配置 SSH 公钥

创建空白的码云仓库

把本地项目上传到码云对应的空白仓库中

模块制作

模块制作中不会仔细介绍页面渲染,只会大概介绍需要渲染什么和制作中所遇到的问题和解决方法以及一些我觉得比较重要的东西。
具体页面渲染参考以下文档:

https://www.escook.cn/docs-uni-shop/

通用

在每一个模块制作之前
我们先创建一个对应的分支,用来开发相关功能

git checkout -b XXXXX

在每一个模块制作完成时,我们可以进行以下操作同步代码到远程仓库
1.将本地的 XXXXX分支进行本地的 commit 提交:

git add .
git commit -m "完成了 XXXXX 的开发"

2.将本地的 XXXXX分支推送到远程仓库进行保存:

git push -u origin tabbar

3.将本地的 XXXXX分支合并到本地的 master 分支:

git checkout master
git merge XXXXX

4.删除本地的 XXXXX分支:

git branch -d XXXXX

注:加入购物车模块和购物车页面模块算在一个分支里
在进行某个页面的开发时,可以通过添加编译模式,使每一次编译后定位到当前页面,方便查看效果。如图:
请添加图片描述

tabBar

创建 tabBar 页面
在 pages 目录中,创建首页(home)、分类(cate)、购物车(cart)、我的(my) 这 4 个 tabBar 页面。在 HBuilderX 中,可以通过如下的两个步骤,快速新建页面:

1.在 pages 目录上鼠标右键,选择新建页面

2.在弹出的窗口中,填写页面的名称、勾选 scss 模板之后,点击创建按钮。截图如下:
请添加图片描述

配置 tabBar 效果
修改项目根目录中的 pages.json 配置文件,新增 tabBar 的配置节点如下:

{
  "tabBar": {
    "selectedColor": "#C00000",
    "list": [
      {
        "pagePath": "pages/home/home",
        "text": "首页",
        "iconPath": "static/tab_icons/home.png",
        "selectedIconPath": "static/tab_icons/home-active.png"
      },
      {
        "pagePath": "pages/cate/cate",
        "text": "分类",
        "iconPath": "static/tab_icons/cate.png",
        "selectedIconPath": "static/tab_icons/cate-active.png"
      },
      {
        "pagePath": "pages/cart/cart",
        "text": "购物车",
        "iconPath": "static/tab_icons/cart.png",
        "selectedIconPath": "static/tab_icons/cart-active.png"
      },
      {
        "pagePath": "pages/my/my",
        "text": "我的",
        "iconPath": "static/tab_icons/my.png",
        "selectedIconPath": "static/tab_icons/my-active.png"
      }
    ]
  }
}

删除默认的 index 首页
1.在 HBuilderX 中,把 pages 目录下的 index首页文件夹 删除掉
2.同时,把 page.json 中记录的 index 首页 路径删除掉
3.为了防止小程序运行失败,在微信开发者工具中,手动删除 pages 目录下的 index 首页文件夹
4.同时,把 components 目录下的 uni-link 组件文件夹 删除掉
修改导航条的样式效果
打开 pages.json 这个全局的配置文件

修改 globalStyle 节点如下:

{
  "globalStyle": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "黑马优购",
    "navigationBarBackgroundColor": "#C00000",
    "backgroundColor": "#FFFFFF"
  }
}

首页

配置网络请求
由于平台的限制,小程序项目中不支持 axios,而且原生的 wx.request() API 功能较为简单,不支持拦截器等全局定制的功能。因此,建议在 uni-app 项目中使用 @escook/request-miniprogram 第三方包发起网络数据请求。

请参考 @escook/request-miniprogram 的官方文档进行安装、配置、使用

官方文档:https://www.npmjs.com/package/@escook/request-miniprogram

最终,在项目的 main.js 入口文件中,通过如下的方式进行配置:

import { $http } from '@escook/request-miniprogram'

uni.$http = $http
// 配置请求根路径
$http.baseUrl = 'https://www.uinav.com'

// 请求开始之前做一些事情
$http.beforeRequest = function (options) {
  uni.showLoading({
    title: '数据加载中...',
  })
}

// 请求完成之后做一些事情
$http.afterRequest = function () {
  uni.hideLoading()
}

主要制作步骤

轮播图区域

分类导航区域

楼层区域

分类

主要制作步骤

渲染分类页面的基本结构

获取分类数据

动态渲染左侧的一级分类列表

动态渲染右侧的二级分类列表

动态渲染右侧的三级分类列表

切换一级分类后重置滚动条的位置

点击三级分类跳转到商品列表页面

搜索

主要制作步骤

自定义搜索组件

搜索建议

搜索历史

商品列表

主要制作步骤

定义请求参数对象

获取商品列表数据

渲染商品列表结构

把商品 item 项封装为自定义组件

使用过滤器处理价格

上拉加载更多

下拉刷新

点击商品 item 项跳转到详情页面

商品详情

主要制作步骤

获取商品详情数据

渲染商品详情页的 UI 结构

渲染详情页底部的商品导航区域

加入购物车

主要制作步骤

配置 vuex

创建购物车的 store 模块

在商品详情页中使用 Store 中的数据

实现加入购物车的功能

动态统计购物车中商品的总数量

持久化存储购物车中的商品

优化商品详情页的 total 侦听器

动态为 tabBar 页面设置数字徽标

将设置 tabBar 徽标的代码抽离为 mixins

购物车页面

问题
1.在渲染购物车页面是还要渲染收货地址区域,因此就不得不调用选择收货地址的接口uni.chooseaddress(),但官方的接口有所调整,所以导致调用该接口无法跳转到对应页面。
2.由于官方调整,调用 uni.chooseaddress() 接口需要权限,否则真机测试和发布时会出问题
解决
1.在manifest.json文件的mp-weixin节点中,新增两个配置:

"requiredPrivateInfos": [
"getFuzzyLocation",
"choosePoi",
"chooseAddress"
],
"permission": {
  "scope.userLocation": {
    "desc": "你的位置信息将用来进行接口调试"
  }
}

2.在 小程序管理后台 -「开发」-「开发管理」-「接口设置」 中完成权限申请。
申请之前,需要填写与这些接口相关的服务类目。这些不涉及敏感信息的权限申请很容易通过,大概一天之内就可以完成。
主要制作步骤

商品列表区域

收货地址区域

结算区域

登陆与支付

问题
由于调用uni.login()接口时申请的code字段是无效的,因此登陆时无法生成有效的token字段,所以在开发时就使用了自定义的token字段代替。当然,因为没有正确的token字段,因此在创建订单时也无法成功创建订单,那么 支付功能暂时无法实现。由于个人账号也无法使用微信中的支付接口,所以该问题暂时保留。
主要制作步骤

点击结算按钮进行条件判断

登录

用户信息

三秒后自动跳转

微信支付

发布

发布小程序的流程

1.点击 HBuilderX 菜单栏上的 发行 -> 小程序-微信(仅适用于uni-app):
请添加图片描述

2.在弹出框中填写要发布的小程序的名称和AppId之后,点击发行按钮:
请添加图片描述

3.发布编译完成之后,会自动打开一个新的微信开发者工具界面,此时,点击工具栏上的上传按钮
4.上传完成之后,会出现提示消息,直接点击确定按钮即可。
5.通过微信开发者工具上传的代码,默认处于版本管理的开发版本列表中
6.将 开发版本提交审核 -> 再将 审核通过的版本发布上线,即可实现小程序的发布和上线。

发布为 Android App 的流程

1.点击 HBuilderX 状态栏左侧的未登录按钮,弹出登录的对话框。
2.在弹出的登录对话框中,填写账号和密码之后,点击登录即可。
3.打开项目根目录中的 manifest.json 配置文件,在基础配置面板中,获取uni-app 应用标识,并填写应用名称:
请添加图片描述

4.切换到 App 图标配置面板,点击浏览按钮,选择合适的图片之后,再点击自动生成所有图标并替换即可:
请添加图片描述

5.点击菜单栏上的 发行 -> 原生 App-云打包:
请添加图片描述

6.勾选打包配置如下:
请添加图片描述

7.在控制台中查看打包的进度信息
8.点击链接下载 apk 的安装包,并安装到 Android 手机中查看打包的效果
注意:由于开发期间没有进行多端适配,所以有些功能在 App 中无法正常运行,例如:选择收货地址、微信登录、微信支付

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【手把手教你C#如何使用SqlSugar操作MySQL数据库】三 SqlSugar使用案例

SqlSugar 连接数据库、创建数据表、增删改查用法1.SqlSugar 连接MySQL数据库1.创建数据库2.创建库中的数据表3.数据的插入4.数据的查询5.数据更新6.数据保存7.数据删除2.整体案例脚本代码1.SqlSugar 连接MySQL数据库 1.创建数据库 using SqlSugar; public class DB : Singlet…

Word数据恢复,简单几个方法恢复未保存的Word文档!

日常生活中,我们经常会用到Word文档,里面记录着我们很多重要内容。当遇到电脑死机、没电关机,或者是编辑文档的软件突然崩溃,我们又没有及时保存Word文档里面的数据,这时该怎么办?Word数据恢复,…

[LeetCode]2319. 判断矩阵是否是一个 X 矩阵

如果一个正方形矩阵满足下述 全部 条件,则称之为一个 X 矩阵 : 矩阵对角线上的所有元素都 不是 0矩阵中所有其他元素都是 0 给你一个大小为 n x n 的二维整数数组 grid ,表示一个正方形矩阵。如果 grid 是一个 X 矩阵 ,返回 true…

VX拜年红包测试用例设计分享

功能测试 1.红包最多可以输入的金额;2.红包一次性可以发送的最大个数3.在输入红包的钱数和个数时只能输入数字4.当余额不足时,红包发送失败5.发送的红包自己是否可以领取6.发送的红包别人是否可以领取7.红包超过 24 小时是否可以领取8.红包超时未领取&a…

刑啊,为什么不刑

前言 你还在为使用浏览器的时候,忘记密码而烦恼吗?今天要分享的不为人知的小技巧,利用前端技术原理来帮助你找回原密码。 在我们使用各种网站登录时,总会勾选上记住密码这一项。 但长时间依赖记住密码,难免有遗忘的情…

CVE-2022-30331-TigerGraph 3.6.0 UDF 功能漏洞分析

TigerGraph UDF 漏洞:详细信息和示例 CVE 参考地址:http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVDCNNVD-202209-215 TigerGraph 图数据库为用户提供了远程上传任意 C 源代码以创建用户定义函数的工具。该代码会自动编译并安装到敏感的系统组件中…

涨薪【20k】的python接口自动化系列文章(一)--什么是接口、接口优势、类型(详解)

简介 经常听别人说接口测试,接口测试自动化,但是你对接口,有多少了解和认识,知道什么是接口吗?它是用来做什么的,测试时候要注意什么?坦白的说,笔者之前也不是很清楚。接下来先看一下…

go 实现抓包 ,盗取浏览器接口信息|反反爬虫

项目地址 https://github.com/kxg3030/shermie-proxy 安装方法 如果有现有的项目可以可安装: go get github.com/kxg3030/shermie-proxy 尝试源码 git clone gitgithub.com:kxg3030/shermie-proxy.git 运行代码 克隆项目下来之后 安装依赖包 go mod tidy 运行程序…

详解注意力机制和Transformer

本文的学习路线: 📍 Attention 从生物学的角度引入到计算机视角,介绍了什么是Attention ▶️介绍Encoder-Decoder框架 (目前大部分Attention Model都是依附于该框架实现)▶️ 介绍了Attention模型中的基础概念查询、键和值 ▶️ 通过讲解Nad…

地理坐标系,投影坐标系区别

目录1. 地球的三级逼近1.1 大地水准面1.2 旋转椭球体1.3 参考椭球体2. 地理坐标系(大地坐标系)2.1 大地基准面2.2 地理坐标系3. 投影坐标系参考1. 地球的三级逼近 1.1 大地水准面 概念 地球的自然状态下其表面并不是连续不断的,高山、悬崖的…

SpringBoot系列 整合MyBatis

数据源 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency> yml spring: datasource: type: com.al…

C语言---插入排序(直接插入和希尔)

文章目录前言一、直接插入排序1.简介2.算法思路3.代码实现二、希尔排序1.简介2.算法思路3.代码实现前言 插入排序一般分为两种&#xff0c;一种直接插入排序&#xff0c;另一种则是希尔排序。 一、直接插入排序 1.简介 直接插入排序是一种简单的排序方法&#xff0c;基本操作…

每天一道大厂SQL题【Day02】电商场景TopK统计

每天一道大厂SQL题【Day02】 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深大数据选手&#xff0c;深知SQL重要性&#xff0c;接下来我准备用100天时间&#xff0c;基于大数据岗面试中的经典SQL题&#xff0c;以每日1题…

数据包络分析DEA(数学建模)

一、模型背景数据包络分析是线性规划模型的应用之一&#xff0c;常被用来衡量拥有相同目标的运营单位的相对效率。数据包络分析是一种基于线性规划的用于评价同类型组织(或项目&#xff09;工作绩效相对有效性的特殊工具手段。这类组织例如学校、医院、银行的分支机构、超市的各…

Qt QRegExp正则表达式

Qt QRegExp正则表达式 前言一、正则表达式是什么?二、元字符是什么?三、 常用表达式四、 在QT中的用法总结前言 在用写程序的时候,往往会用到正则表达式,不仅仅是Web开发,MFC、GTK+、Qt开发的图形界面也是如此,只要了解其原理,语法也都大相径庭! 一、正则表达式是什么…

java ssm智慧校园校医室问诊系统 idea maven

基于JSP技术、SSM框架、B/S机构、Mysql数据库设计并实现了智慧校园校医室问诊系统。系统主要包括个人中心、学生管理、校医管理、药品信息管理、校医科室管理、预检分诊管理、医生推荐管理、预约问诊管理、线上就诊管理、药方信息管理、药品购买管理、系统管理等功能模块。 通过…

nodejs+vue教师资格考前指导系统HTML5

前端&#xff1a;HTML5,CSS3、JavaScript、VUE 设计步骤如下&#xff1a; 1、明确系统的业务流程和数据流程&#xff0c;并用UML画出相应的活动图、顺序图。 2、设计数据字典&#xff0c;明确编码规则。 3、数据库进行设计&#xff0c;建立约束和联系。 4、创建程序框…

2022摄影摄像行业年度分析报告:单反小幅下滑,微单销额增长超32%

近年来&#xff0c;随着人们物质生活水平的提高&#xff0c;智能手机、数码相机等3C数码产品的普及率逐渐提高。人们需求的不断提升也拉动着整个产业产能的迅速增长&#xff0c;与此同时&#xff0c;产品的多样性和使用场景也在不断更新。 根据数据显示&#xff0c;2022年摄影摄…

什么是同理心?如何提高同理心?

有一句非常有名的话&#xff1a;“你永远也不可能真正了解一个人&#xff0c;除非你穿上他的鞋子走来走去&#xff0c;站在他的角度考虑问题。”这句话告诉我们&#xff0c;人与人是存在距离的&#xff0c;要想了解一个人必须要学会换位思考、有同理心。什么是同理心&#xff1…

大数据分析案例-基于随机森林算法构建新闻文本分类模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…