从0开始制作微信小程序

目录

前言

正文

需要事先准备的

需要事先掌握的

什么是uniapp

平台应用的分类方式

什么是TypeScript

创建项目

项目文件作用

源码地址

尾声


 

  • 🔭 Hi,I’m Pleasure1234
  • 🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.
  • 👯 I’m studying in University of Nottingham Ningbo China
  • 📫 You can reach me by url below:
  • My Blog Website: https://blog.yiming1234.cn 
  • My CSDN Blog: https://yiming1234.blog.csdn.net
  • My Email:Pleasure@yiming1234.cn
  • My Github:Pleasurecruise (自由的世界人) · GitHub
  • It's my pleasure to see you follow me!

原文地址:从0开始制作微信小程序 - Pleasure的博客

下面是正文内容:


前言

放暑假了,闲着也是闲着,开始捣鼓微信小程序,逐渐实现跨平台的统一...

由于数据类型的统一需要用到TypeScript,可能又要了解新的语言了...[捂脸]

正文

需要事先准备的

①编程软件和环境:微信开发者工具,VScode或者WebStorm或者HBuilderX等编辑软件都可以

因为要使用Vue3所以要事先准备NodeJS环境这边就直接跳过了

微信开发者工具下载地址:https://servicewechat.com/wxa-dev-logic/download_redirect?type=win32_x64&from=mpwiki&download_version=1062405010&version_type=1

然后在设置=>安全中打开服务的端口

HBuilderX下载地址:https://qiniu-ecdn.dcloud.net.cn/download/HBuilderX.4.15.2024050802.zip

HX使用文档:HBuilderX 文档

HX专门用来快速的创建编译运行发布开发uniapp项目

②一个appid,用于编译小程序(有些人不知道怎么获取特别说明一下)

首先打开微信公众平台:微信公众平台(注意不是微信开发者平台)

然后选择下方的小程序:小程序(不要和公众号的appid搞混了)

如果你没有上线小程序的打算的话也可以在右边选择申请一个测试号

然后在首页扫码登录之后,在设置=>账号信息中,可以看到小程序的appid。

在HBuilderX中点击manifest.json文件进行更改

或者直接在项目根目录的manifest.json文件中进行更改

需要事先掌握的

什么是uniapp

uniapp是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台

正因为使用的是Vue3而且是前端应用,所以在过渡的时候相对还是比较容易的。

平台应用的分类方式

按照设备类型,应用可以分为Web应用,移动应用,桌面应用。而小程序则是属于移动应用中的跨平台应用,有别于常用原生语言开发的app。

什么是TypeScript

TypeScript 是一种编程语言,可以看作是“加强版”的 JavaScript。它在 JavaScript 的基础上增加了类型系统,也就是说你可以在写代码的时候明确地告诉计算机某个变量是什么类型,比如是数字、字符串还是数组。这样,计算机就能在你写代码的时候帮你检查一些错误,而不是等到运行的时候才发现。

创建项目

如果你是想从0开始编写一个uniapp项目,可以通过下面两种方式:

①一种就是通过npm命令行来进行创建

官方文档链接:uni-app官网

npx degit dcloudio/uni-preset-vue#vite-ts uni-app-vue3-ts

可能会因为网络(墙)原因创建失败,可以自行点击下面的链接下载启动模版

登录 - Gitee.com

创建完成后,然后进行pnpm install

然后再输入下面的指令编译成想要的小程序类型,这里是微信小程序

pnpm dev:mp-weixin

编译完成之后,然后在微信开发者工具中进行导入

选择项目文件夹下dist/dev/mp-weixin文件夹进行打开即可,会自动识别到填写的appid

②另一种就是通过HBuilderX一键创建

这里需要事先安装微信开发者工具,设置完微信开发者工具的路径之后

HBuilderX会自动调用电脑中的微信开发者工具来运行这个微信小程序

P.S. !!

当然,每次对项目的代码进行编写修改更新之后,都需要对整个项目重新进行编译。这就无法实时的看到项目的输出与反馈从而进行调整,这就需要在代码编辑器中安装不同的插件从而实现项目的实时编译,以及数据类型的注释等操作。不同的代码编辑器中有不同的插件,这里就不特别进行说明了。

项目文件作用

大概解释一下一个Vue3+TypeScript的前端uniapp小程序项目中,不同文件及文件夹所起到的作用。

初始工程目录结构解析

├── .husky                     # Git Hooks
├── .vscode                    # VS Code 插件 + 设置
├── dist                       # 打包文件夹(可删除重新打包)
├── src                        # 源代码
│   ├── components             # 全局组件
│   ├── composables            # 组合式函数
│   ├── pages                  # 主包页面
│       ├── index               # 首页
│       ├── category            # 分类页
│       ├── cart                # 购物车
│       ├── my                  # 我的
│       └── login               # 登录页
│   ├── services               # 所有请求服务
│   ├── static                 # 存放应用引用的本地静态资源
│       ├── images              # 普通图片
│       └── tabs                # tabBar 图片
│   ├── stores                 # 全局 pinia store
│       ├── modules             # 模块
│       └── index.ts            # store 入口
│   ├── styles                 # 全局样式
│       └── fonts.scss          # 字体图标
│   ├── types                  # 类型声明文件
│       └── component.d.ts      # 全局组件类型声明
│   ├── utils                  # 全局方法
│   ├── App.vue                # 入口页面
│   ├── main.ts                # Vue初始化入口文件
│   ├── pages.json             # 配置页面路由等页面类信息
│   ├── manifest.json          # 配置appid等打包信息
│   └── uni.scss               # uni-app 内置的常用样式变量
├── .editorconfig              # editorconfig 配置
├── .eslintrc.cjs              # eslint 配置
├── .prettierrc.json           # prettier 配置
├── .gitignore                 # git 忽略文件
├── index.html                 # H5 端首页
├── package.json               # package.json 依赖
├── tsconfig.json              # typescript 配置
└── vite.config.ts             # vite 配置

源码地址

小程序由于作为一种应用模式,既需要有前端的展示型项目又需要有后端的接口型项目,所以如果要完整的从无到有去开发一款非工具类型的小程序(比如商城,论坛,系统等,而不是计算器之类的工具),工作量显然是不“小”的,更何况是在刚起步的情况下。

如果你只是想体验一下小程序的开发流程的,可以选择看一下下面的这个仓库,具体的使用说明已经在README中提到了,仓库还在持续更新中......

GitHub - Pleasurecruise/yiming-shop

尾声

后续会尝试稍微深入了解TypeScript以及之中的一些细节。

题外话:看起来还是后端轻松,只需要保证接口的可用性以及请求后返回数据的正确性就可以了。不需要去头疼不同平台之间的适配......

最后,祝各位六一儿童节快乐,,,

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[数据集][目标检测]旋风检测数据集VOC+YOLO格式157张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):159 标注数量(xml文件个数):159 标注数量(txt文件个数):159 标注类别…

代码随想录算法训练营第十一天| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

20. 有效的括号 题目链接:20. 有效的括号 文档讲解:代码随想录 状态:so easy 思路: 使用栈,如果是左括号就入栈,如果是右括号则判断是否和栈顶括号匹配,如果匹配就出栈,否则判断遍历…

ubuntu--Linux运行时格式

Linux运行时格式 \r 错误 用vim打开那个执行错误的 sh脚本文件 进入最后一行模式下 :set ff显示 fileformatdos 解决方法 : :set ffunix查看是否更改 : :set ff结果 : 保存退出即可 :x运行, 没有出错 * Author: cpu_code * Date: 2020-07-29 19:07:52 * LastEditTime: 2020…

MMPose-RTMO推理详解及部署实现(上)

目录 前言1. 概述1.1 MMPopse1.2 MMDeploy1.3 RTMO 2. 环境配置3. Demo测试4. ONNX导出初探5. ONNX导出代码浅析6. 剔除NMS7. 输出合并8. LayerNormalization算子导出9. 动态batch的实现10. 导出修改总结11. 拓展-MMPose中导出ONNX结语下载链接参考 前言 最近在 MMPose 上看到了…

Android加固多渠道打包和签名工具

简介 基于腾讯VasDolly最新版本3.0.6的图形界面衍生版本,同时增加了签名功能,旨在更好的帮助开发者构建多渠道包 使用说明 下载并解压最新工具包,找到Startup脚本并双击启动图形界面(注意:需本地安装java环境&#…

json文件操作和异常处理

目录 按行读取文件readline() 读取大文件: json文件: json文件介绍: json的语法: 读取json文件: json文件写入: 异常: 捕获异常: 捕获指定类型的异常: 捕获未知类型的异常(使用最多): 异常捕获的完整结构: 异常传递: ​编辑抛出异常: 按行…

算法人生(18):从神经网络的“剪枝策略”看“怎么找回时间”

IT人的工作和生活难平衡这事,到底要怎么解决呢,让我们从神经网络的“剪枝策略”中找点灵感吧! 剪枝策略是指训练和优化深度神经网络时采取的一种技术,从名字就知道,它就像修剪树木一样,去除不必要的枝叶&a…

云原生架构模式

本文主要介绍了云原生架构的主要设计模式,讨论了这些模式的优缺点及其适用场景,并探讨了在云计算环境中的应用和挑战。原文: Cloud-Native Architecture Patterns (Part 1),Cloud-Native Architecture Patterns (Part 2) Bernard Hermant Uns…

微软如何打造数字零售力航母系列科普12 - 使用Microsoft Fabric将客户数据带入人工智能时代

【世界上充斥着数据,在过去的2年里,我们都看到了人工智能如何有潜力彻底改变我们的日常业务。人们对利用生成性人工智能体验的力量的需求越来越大,但这样做需要一个干净的数据庄园,而且可能会因为各种技术堆栈、分散的团队和无处不…

常见仪表盘指示灯的含义,这次够全了!

汽车是当前主要的交通工具之一,给人们的工作、生活提供了便利。大家在学会开车的同时,也得了解一些基本的汽车常识,可以及时的发现车辆的问题,并作出正确的判断,以此降低车辆的损耗和维修成本。其中最基本的&#xff0…

Redis-重定向

实验环境(3主3从的Redis-Cluster) 一、Redis重定向基础篇 1、MOVED重定向 Redis Custer 中,客户端可以向集群中任意节点发送请求。此时当前节点先对 Key 进行 CRC 16 计算,然后按 16384 取模确定 Slot 槽。确定该 Slot 槽所对应的…

C语言(字符、字符串函数)2

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记,在这里撰写成文一…

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示与TM1638芯片连接的按键的按键值应用

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示与TM1638芯片连接的按键的按键值应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍TM1638键盘…

⌈ 传知代码 ⌋ 命名实体识别

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

windows操作系统提权之服务提权实战rottenpotato

RottenPotato: 将服务帐户本地提权至SYSTEM load incognito list_tokens –u upload /home/kali/Desktop rottenpotato.exe . execute -Hc -f rottenpotato.exe impersonate_token "NT AUTHORITY\SYSTEM" load incognito 这条命令用于加载 Metasploi…

Pytorch线性回归

使用pytorch来重现线性模型的过程,构造神经网络module,构造损失函数loss,构造随机梯度下降的优化器sgd。 一 revise 首先确定我们的模型,我们希望完成的目标就是得到较小的loss,所以我们就需要一个标量值的loss。 那…

Linux入门攻坚——24、BIND编译安装、Telnet和OpenSSH

BIND编译安装 对于没有rpm包,需要源代码编译安装。 1、下载源代码:bind-9.12.2-P1.tar.gz,解压:tar -xf bind-9.12.2-P1.tar.gz 2、完善环境: 1)增加用户组named:groupadd -g 53 named 2&…

Multipass虚拟机磁盘扩容

Multipass 是一个用于轻松创建和管理 Ubuntu 虚拟机的工具,特别适合开发环境。要使用 Multipass 扩大虚拟机的磁盘容量,你需要经历几个步骤,因为 Multipass 自身并不直接提供图形界面来调整磁盘大小。不过,你可以通过结合 Multipa…

程序员上岸指南

如果你还在996,大小周,感觉身体被掏空,那么你可以看看下面这篇文章,我特意搜集了一些苦逼程序员的上岸教程。 人生真的就是做几道选择题,选错了,忙也是瞎忙。选对了,躺着都能赢。总的来说&#…

MQTT之使用mosquitto

1、下载并安装mosquitto 参考:04 Windows下mosquitto安装_mosquitto-1.6.9-install-windows-x64 windowsserver系-CSDN博客 2、启动 2.1添加用户 .\mosquitto_passwd -c pwfile.example user1 报错信息如下: Error: Unable to open file C:\Program…