微信小程序开发--详情【开发一次 多端覆盖】

news2024/9/21 14:44:57

目录

1、准备工作

了解 uni-app :

准备开发工具:

下载 :

安装完成后,打开这个开发者工具:

对微信小程序进行配置:

使用开发工具HBuilderX::

先安装终端插件

2、初始化一个demo

创建项目:

方式一:通过 HBuilderX 的可视化界面

方式二:通过 vue-cli 命令行

项目创建好之后 打开所在文件夹:

安装 node_modules 依赖:

运行初始项目:

若出现错误:

解决:(打开服务端口)

打开之后 这两个工具就可以连起来了(即:当在HBuilderX中点击运行 并成功后,会自动打开微信开发者工具 )

微信开发者工具:(运行之后的界面)

3、完善项目

新建页面:

无法直接导入pinia,若直接运行 会报错,

解决:

实现页面跳转:

方式一:使用组件

方式二:navigateTo方法【只能在菜单之间跳转,超出范围 就不能跳转】

“登录”

注册微信小程序:

小程序 ID 和 密钥:

注册之后 找到小程序的开发管理 点击“生成”,即可生成自己的密钥

利用上述的 小程序ID 和 密钥,进行App模块配置:

资源:

阿里开源的图标组件:https://www.iconfont.cn/

注意:

① 在 pages.json 里:使用tabBar组件创建菜单

② 注意 uni-app 里面的 pages.json 对应的是 微信开发者工具里的 app.json

③ onMounted 和 onLoad 注意:

④ 注意调用之间的顺序:

⑤ 我们要的就是openID , 它比较重要 是因为openID是 用户的唯一标识, 而且 openID 要存到 pinia 里面

⑥ tabBar 规定 至少有两个items

4、新加内容

遇到的报错内容:

解决方案:

代码参考:

结果截图:

涉及到的知识点:

数据流向


1、准备工作

了解 uni-app :

查看uni-app的官网:https://uniapp.dcloud.net.cn/

uni-app 就是 用 Vue.js 开发所有前端应用 的框架

用vue去写,uni-app会帮我们生成 各个终端适配的一个应用

可以实现开发者编写一套代码,就能发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。【即:一次开发 多端覆盖】

准备开发工具:

下载 :

① HBuilder X 开发工具

官网: https://www.dcloud.io/hbuilderx.html

了解 HBuilder X :

uni-app开发工具 是由 HBuilder X 开发工具来写的,对这个框架的支持度比较高

进 HBuilder X 的官网 下载 :(免安装 解压完就可直接用)

② 微信小程序的模拟器 (也称 微信开发者工具)

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

了解 微信小程序的模拟器:

它是将 HBuilder X 上写的代码,构建成 符合微信小程序的项目结构 在这上面编译并运行的

进官网 下载稳定版更新日志 :

点击之后 下载步骤:

安装完成后,打开这个开发者工具:

先扫二维码登录微信

点“测试号”,会生成 AppID ,拿到这个AppID就行 其他不用管

对微信小程序进行配置:

① 配置AppID:直接将AppID放里面就行了,会自动保存

【注意: 相关配置 放进去会自动保存,但是像那些vue文件 编辑之后 需要手动 ctrl+s 保存】

② 配置微信小程序的启动地址:

使用开发工具HBuilderX::

先安装终端插件

安装“内置的终端插件” 失败:

解决:

查看日志:

根据日志信息 解决:

安装成功:

2、初始化一个demo

创建项目:

方式一:通过 HBuilderX 的可视化界面

方式二:通过 vue-cli 命令行

打开命令行窗口 的方式:

输入命令:

① 全局安装 vue-cli(脚手架):(一般都装过了 就不用再安装了)

npm install -g @vue/cli

Java

② 创建项目

npx degit dcloudio/uni-preset-vue#vite-ts 项目名

Java

创建成功截图:

项目创建好之后 打开所在文件夹:

安装 node_modules 依赖:

npm i

Java

安装完成 就会自动出来这个依赖文件夹

运行初始项目:

若出现错误:

解决:(打开服务端口)

打开之后 这两个工具就可以连起来了(即:当在HBuilderX中点击运行 并成功后,会自动打开微信开发者工具 )

微信开发者工具:(运行之后的界面)

3、完善项目

新建页面:

无法直接导入pinia,若直接运行 会报错

解决:

① 先升级vue :

npm i vue@3.4.31

Shell

② 再安装pinia:

npm i pinia

Java

实现页面跳转

(参考官网:https://uniapp.dcloud.net.cn/component/navigator.html)

方式一:使用组件

<navigator :url="'/pages/navigate/navigate?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>

Java

方式二:navigateTo方法【只能在菜单之间跳转,超出范围 就不能跳转】

详情可参考: https://uniapp.dcloud.net.cn/api/router.html

“登录”

可参考官网:https://uniapp.dcloud.net.cn/api/plugins/login.html#login

注册微信小程序:

进官网 注册: https://mp.weixin.qq.com/

小程序 ID 和 密钥:

注册之后 找到小程序的开发管理 点击“生成”,即可生成自己的密钥

利用上述的 小程序ID 和 密钥,进行App模块配置:

资源:

阿里开源的图标组件:https://www.iconfont.cn/

(是公开、免费使用的才能下载)

注意:

① 在 pages.json 里:使用tabBar组件创建菜单

② 注意 uni-app 里面的 pages.json 对应的是 微信开发者工具里的 app.json

③ onMounted 和 onLoad 注意:

在 vue 里面 用onMounted 和 onLoad ,他们都是生命周期的钩子函数

由于 是先加载完之后 再挂载,所以 onLoad 会先出发 再执行 onMounted

④ 注意调用之间的顺序:

微信小程序申请之后 会有个自己的 ID 和 密钥, 要拿用户的信息 我们必须通过 ID 和 密钥,

由于 不能直接在微信小程序里面 调 ID 和 密钥的接口 拿用户信息(因为微信小程序 最终打包也是前端的 ,如果把密钥这些都放进去 很容易信息被盗取)

所以 一定要中转一下,就是要先调用自己的服务器 自己的服务器通过自己申请的appID 和 密钥,再通过微信的服务器调url 拿到用户的id

⑤ 我们要的就是openID , 它比较重要 是因为openID是 用户的唯一标识, 而且 openID 要存到 pinia 里面

⑥ tabBar 规定 至少有两个items

4、新加内容

遇到的报错内容:

[plugin:vite:vue] [@vue/compiler-sfc] <script setup> cannot contain ES module exports. If you are using a previous version of <script setup>, please consult the updated RFC at https://github.com/vuejs/rfcs/pull/227.

解决方案:

代码参考:

<template>    <view>        <view>            <form @submit="formSubmit" @reset="formReset">
                <view class="uni-form-item uni-column">                    <view class="title">姓名:</view>                    <input class="uni-input" name="input" placeholder="请输入姓名" />                </view>
                <view class="uni-form-item uni-column">                    <view class="title">性别</view>                    <radio-group name="radio">                        <label>                            <radio value="radio1" /><text>男</text>                        </label>                        <label>                            <radio value="radio2" /><text>女</text>                        </label>                    </radio-group>                </view>                <view class="uni-form-item uni-column">                    <view class="title">爱好</view>                    <checkbox-group name="checkbox">                        <label>                            <checkbox value="checkbox1" /><text>唱歌</text>                        </label>                        <label>                            <checkbox value="checkbox2" /><text>运动</text>                        </label>                    </checkbox-group>                </view>                <view class="uni-form-item uni-column">                    <view class="title">年龄</view>                    <slider value="50" name="slider" show-value></slider>                </view>
                <view class="uni-btn-v">                    <button form-type="submit">提交</button>                    <button type="default" form-type="reset">重置</button>                </view>            </form>        </view>    </view></template>
<script >    export default {            data() {                return {                }            },            methods: {                formSubmit: function(e) {                    console.log('form发生了submit事件,携带数据为:' + JSON.stringify(e.detail.value))                    var formdata = e.detail.value                    uni.showModal({                        content: '表单数据内容:' + JSON.stringify(formdata),                        showCancel: false                    });                },                formReset: function(e) {                    console.log('清空数据')                }            }        }</script>
<style>      .uni-form-item .title {              padding: 20rpx 0;          }     </style>

Java

结果截图:

涉及到的知识点:

数据流向

  • 数据收集

  • 当表单提交时,formSubmit 方法被触发。

  • 事件对象 e 包含了表单的数据,可以通过 e.detail.value 获取。

  • 这些数据被打印到控制台,并通过 uni.showModal 显示给用户。

  • 数据处理

  • 数据并没有被导出到外部,而是在组件内部被处理。

若是将数据导出到外部,

例如发送到服务器或保存到本地存储中,

需要在 formSubmit 方法中添加相应的逻辑。例如,可以使用 fetchaxios 发送 HTTP 请求 来将数据发送到服务器

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

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

相关文章

分类预测|基于麻雀优化核极限学习机的数据分类预测Matlab程序SSA-KELM 多特征输入多类别输出 含基础KELM

分类预测|基于麻雀优化核极限学习机的数据分类预测Matlab程序SSA-KELM 多特征输入多类别输出 含基础KELM 文章目录 前言分类预测|基于麻雀优化核极限学习机的数据分类预测Matlab程序SSA-KELM 多特征输入多类别输出 含基础KELM 一、SSA-KELM模型SSA-KELM 分类预测的详细原理和流…

软考 -- 软件设计师 -- 二轮复习(1) -- 计算机系统基础知识错题集和重点知识(持续更新)

软考 – 软件设计师 – 二轮复习(1) – 计算机系统基础知识错题集和重点知识(持续更新) 文章目录 软考 -- 软件设计师 -- 二轮复习(1) -- 计算机系统基础知识错题集和重点知识(持续更新)前言一、CPU二、内存编址计算三、原码、反码、补码、移码计算四、浮点数 前言 考试时间&a…

led台灯对眼睛好不好?护眼台灯怎么选对眼睛好?收下这份攻略

随着年级的升高与学业内容的日益丰富&#xff0c;学生们待在书桌前的时间却越来越长。同时电子产品的广泛普及&#xff0c;让我国青少年的用眼负担显著增加。权威机构预测&#xff0c;到2050年&#xff0c;全球近视人群将达到惊人的49.49亿人&#xff0c;患病率高达52%。这一严…

MySQL编译安装

1.源码包地址 2.编译/安装 3.设置环境变量 4.初始化/登录 地址: MYSQL源码包下载 右键复制链接 使用wget 下载到/usr/local/src下 再使用rpm –ivh 安装 --这个时候跳转到 cd /root/rpmbuild/SOURCES 使用ll查看有什么东西 yum -y install gcc gcc-c ncurses ncurses-d…

java设计模式day01--(类之间的关系、软件设计原则、单例设计模式)

视频网址&#xff1a;s1.设计模式-课程介绍_哔哩哔哩_bilibili 1&#xff0c;设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中&#xff0c;而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构…

Apache RocketMQ 批处理模型演进之路

作者&#xff1a;谷乂 RocketMQ 的目标&#xff0c;是致力于打造一个消息、事件、流一体的超融合处理平台。这意味着它需要满足各个场景下各式各样的要求&#xff0c;而批量处理则是流计算领域对于极致吞吐量要求的经典解法&#xff0c;这当然也意味着 RocketMQ 也有一套属于自…

ImportError: DLL load failed while importing _wrapper: 找不到指定的模块

今天使用pyinstaller打包好脚本,执行打包好的程序后,出现如下的报错: 这个问题花了我一个上午,在网上查找相关的解决方法,然而不知道是我的搜索方式有问题,还是这个资料比较少,找了很久,只找到了一篇极度相关的文章:https://blog.csdn.net/weixin_46457351/article/d…

C Primer Plus第十五章编程练习,仅供参考

第十五章编程练习 本章第一个编程练习的内容是让我们将二进制字符串转换为一个数值&#xff0c;传递字符串指针&#xff0c;逻辑并不复杂&#xff0c;完整程序代码以及运行结果如下&#xff1a; #include<stdio.h> #include<string.h> #include<math.h> in…

从C向C++28——设计模式

一.设计模式 1.设计模式理解 ​ C程序设计模式是针对在C编程中常见问题的通用、可重用的解决方案。设计模式主要是在软件工程领域&#xff0c;特别是在面向对象编程中发展起来的&#xff0c;它们提供了一种标准的术语和解决方案&#xff0c;可以帮助程序员更好地设计软件架构…

豆包 MarsCode试用体验

1.前言 豆包 MarsCode 是一款为你提供了AI编程助手和云端集成开发环境来协助你完成编程任务的产品。 2.功能介绍 2.1.豆包 MarsCode 编程助手 豆包 MarsCode 编程助手是豆包旗下的 AI 编程助手&#xff0c;提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE…

Luma AI,让你的视频像电影一样精彩!附带使用教程

Luma 视频生成 API 对接说明 随着 AI 的应用变广&#xff0c;各类 AI 程序已逐渐普及。AI 已逐渐深入到人们的工作生活方方面面。而 AI 涉及的行业也越来越多&#xff0c;从最初的写作&#xff0c;到医疗教育&#xff0c;再到现在的视频。 Luma 是一个专业高质量的视频生成平…

tomcat实验

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;Tomcat 具有处理HTML页面的功能&#xff0c;它还是一个Servlet和JSP容器。 下载文件 安装javajdk 解压 …

ComfyUI基础操作教学!小白入门必看!

在我们打开comfyui后会面对一堆节点&#xff0c;那么这些节点都是什么意思呢&#xff1f;今天跟着小元老师来学习一下吧&#xff5e; 一、拆解文生图基本工作流 这个是Comfyui默认的文生图工作流它的基本逻辑是&#xff1a; 条件输入板块——潜空间——像素空间 01 条件输入模…

AiThinkerIDE_V1.5.2工程随意移动地方,路径不能有空格

路径不能有空格&#xff0c;例如usr_sdk不能改为usr sdk IDF_PATH&#xff1a; ${workspace_loc:/AiThinkerProjectForESP}${workspace_loc:/AiThinkerProjectForESP}/examples/get-started/hello_world

2024年入职_转行网络安全,该如何规划呢?

前言 前段时间&#xff0c;知名机构麦可思研究院发布了 《2023年中国本科生就业报告》&#xff0c;其中详细列出近五年的本科绿牌专业&#xff0c;其中&#xff0c;信息安全位列第一。 网络安全前景 对于网络安全的发展与就业前景&#xff0c;想必无需我多言&#xff0c;作为…

C#中的批量引用已有的NuGet包

引言 小伙伴们有没有遇到过一个问题&#xff0c;就是我有一个类库A引用了很多NuGet包&#xff0c;但是到B类库中也需要使用&#xff0c;但是不想一个一个引用&#xff0c;很麻烦&#xff0c;所以我教大家一招&#xff0c;直接复制NuGet包&#xff1a; 第一步&#xff1a; 找…

【开发实战】QT5 + 深度学习六大应用案例

点击这里&#xff0c;即可一键获取六大案例源码与相关资料 QT5 OpenCV4.8 QT5 OpenCV4.8 开发与配置环境搭建&#xff0c;请看博客文章 QT5 OpenCV4 开发环境配置应用演示 深度学习模型部署 深度学习模型部署有很多成熟的框架&#xff0c;当前经常使用的深度学习模型推理…

linux 上传文件报错 -bash: rz:command not found

linux 上传文件报错 -bash: rz:command not found 新创建的纯净虚拟机无法上传文件安装lrzsz 新创建的纯净虚拟机无法上传文件 这个错误表明系统中没有安装 rz&#xff08;上传文件工具&#xff09;命令。 如果是在 CentOS 或 Red Hat 等基于 RPM 的系统上&#xff0c;可以使用…

基于RFID光触发标签的光交箱哑资源管理优化方案

当今数字化高速发展的时代&#xff0c;政企单位对通信服务的质量和可靠性提出了越来越高的要求。光交箱作为通信网络中的关键节点&#xff0c;其哑资源的有效管理对于保障通信的顺畅至关重要。然而&#xff0c;传统的管理方式在面对日益复杂的通信需求时&#xff0c;逐渐暴露出…

PHP多功能投票系统小程序源码社群决策与趣味互动新潮流

&#x1f31f;【引领社群新风尚&#xff0c;一键决策更轻松】&#x1f31f; 你还在为社群活动意见不合而烦恼吗&#xff1f;多功能投票小程序来拯救你的选择困难症&#xff01;无论是团队项目方案、周末出游地点&#xff0c;还是晚餐吃什么的小纠结&#xff0c;只需轻轻一点&a…