微信小程序开发前后端交互快速入门

article/2025/10/14 13:02:21

目录

第 1 章 小程序特点

1.1 小程序特点概述

1.2 小程序配置

全局配置: app.json

页面配置: 页面名称.json

sitemap 配置: sitemap.json

1.3 小程序框架接口

App

Page

第 2 章 wxml 语法

 2.1 数据绑定

初始化数据

使用数据

修改数据

2.2 事件绑定

事件分类

绑定事件

向事件对象传参

2.3 列表渲染

语法说明

注意事项

2.4 条件渲染

语法说明

wx:if VS hidden  

2.5 模板使用

定义模板

 引入模板

使用模板

向模板导入数据并使用数据

2.6 生命周期

对应阶段说明

官网图示说明

第 3 章 小程序 API

3.1 API 使用说明

3.2 常用 API

3.3 快速查找技巧

第 4 章 小程序重点知识汇总

4.1 小程序本地存储

语法说明

注意事项  

官网对应地址

4.2 小程序前后端交互

语法说明

相关配置

注意事项

官网对应地址

4.3 小程序页面通信

路由传参

消息订阅发布

eventChannel 事件通道

4.4 小程序自定义组件 

创建组件

使用组件

4.5 小程序使用 npm 包

初始化 package.json

勾选允许使用 npm

下载 npm 包

构建 npm

4.6 小程序获取用户基本信息

授权之后获取

4.7 小程序获取用户唯一标识(openId)

官网图解

获取流程

获取接口地址

4.8 小程序分包流程

为什么要分包

分包形式

常规分包

 独立分包

分包预下载

官网对应地址

4.9 小程序转发分享

分享实现

自定义分享内容

设置体验权限

 


第 1 章 小程序特点

1.1 小程序特点概述

1. 没有 DOM
2. 组件化开发: 具备特定功能效果的代码集合
3. 体积小,单个压缩包体积不能大于 2M ,否则无法上线
4. 小程序的四个重要的文件
a) *.js
b) *.wxml ---> view 结构 ----> html
c) *.wxss ---> view 样式 -----> css
d) *. json ----> view 数据 -----> json 文件
5. 小程序适配方案 : rpx (responsive pixel 响应式像素单位 )
a) 小程序适配单位: rpx
b) 规定任何屏幕下宽度为 750rpx
c) 小程序会根据屏幕的宽度不同自动计算 rpx 值的大小
d) Iphone6 下: 1rpx = 1 物理像素 = 0.5px

 

1.2 小程序配置

全局配置: app.json

1. 作用: 用于为整个应用进行选项设置
2. 链接:https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app. html

3. 配图:

页面配置: 页面名称.json

1. 作用 : 用于为指定的页面进行配置
2. 链接 : https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app. html
3. 注意事项 : 页面配置的优先级高于全局配置
4. 配图 :

 

sitemap 配置: sitemap.json

1. 作用:用于被微信搜索爬取页面
2. 链接 :https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app. html
3. 配图 :

 

1.3 小程序框架接口

App

1. 全局 app.js 中执行 App()
2. 生成当前应用的实例对象
3. getApp() 获取全局应用实例

Page

1. 页面 .js 中执行 Page()
2. 生成当前页面的实例
3. 通过 getCurrentPages 获取页面实例

2 wxml 语法

 2.1 数据绑定

初始化数据

页面 .js data 选项中

 

使用数据

1. 模板结构中使用双大括号 {{message}}
2. 注意事项 : 小程序中为单项数据流 model ---> view

修改数据

 

 

2.2 事件绑定

事件分类

1) 冒泡事件
a) 定义:冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
b) 冒泡事件列表: https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html
2) 非冒泡事件
a) 定义:当一个组件上的事件被触发后,该事件不会向父节点传递。
b) 非冒泡事件:表单事件和自定义事件通常是非冒泡事件
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html

绑定事件

1. bind 绑定: 事件绑定不会阻止冒泡事件向上冒泡
<view bindtap="handleTap" class='start_container'><text class='start'>开启小程序之旅</text>
</view>
2. catch 绑定 : 事件绑定可以阻止冒泡事件向上冒泡
<view catchtap="handleTap" class='start_container'><text class='start'>开启小程序之旅</text>
</view>

向事件对象传参

1. 语法: data-key=value

 2. 获取: event.target.dataset.key || event.currentTarget.dataset.key

3. Event.target 和 event.currentTarget 的区别

a) Event.target 是触发事件的对象,但不一样是绑定事件的对象,如: 事件委托, 冒泡

b) currentTarget 触发时间的对象一定是绑定事件的对象, 没有事件委托

2.3 列表渲染

语法说明

1. wx:for=’{{arr}}’
2. wx:key=’{{ 唯一值 }}’

注意事项

1. 默认的个体 : item
2. 默认的下标 : index
3. 自定义个体变量名称: wx:for-item=’myItem’
4. 自定义下标变量名称: wx:for-index=’myIndex’

2.4 条件渲染

语法说明

1. wx:if=’ 条件
2. wx:elif=’ 条件
3. wx:else

wx:if VS hidden  

1. hidden 用法 : <view hidden=’{{true}}’ ></view>
2. 区别: wx:if 是遇 true 显示,hidden 是遇 false 显示。 wx:if 在隐藏的时候不渲染,而 hidden 在隐藏时仍然渲染,只是不呈现。

2.5 模板使用

定义模板

 引入模板

1. 引入模板结构 : <import src=’ 模板结构相对路径 ’ />
2. 引入模板样式 : @Import ‘ 模板样式路径

使用模板

 

向模板导入数据并使用数据

 

 

2.6 生命周期

对应阶段说明

1. onLoad(Object query)
a) 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开
当前页面路径中的参数。
b) 参数:
名称     类型                    说明
query  Object     打开当前页面路径中的参数
2. onShow()
a) 页面显示 / 切入前台时触发
b) 会执行多次
3. onReady()
a) 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,
可以和视图层进行交互。
4. onHide()
a) 页面隐藏 / 切入后台时触发。
wx.navigateTo 或底部 tab 切换到其他页面,小 程序切入后台等。
5. onUnload()
a) 页面卸载时触发。如 wx.redirectTo wx.navigateBack 到其他页面时。

官网图示说明

https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle. html

第 3 章 小程序 API

3.1 API 使用说明

1. 小程序提供了很多实用的方法供开发者使用
2. 小程序全局对象是 : wx
3. 所有的 API 都保存在 wx 对象中

 

3.2 常用 API

1. 界面交互
a) 显示消息提示框 : wx.showToast()
b) 显示消息加载框 : wx.showLoading()
c) 关闭消息提示框 : wx.hideToast()
d) 关闭消息加载框 : wx.hideLoading()
2. 路由跳转
a) wx.navigateTo()
b) wx.redirectTo()
c) wx.switchTab()
3. 网络请求
a) wx.request()
4. 本地存储
a) wx.setStorage()
b) wx.setStorageSync()
c) wx.getStorage()
d) wx.getStorageSync()
5. 媒体
a) wx.getBackgroundAudioManager()
b) wx.playVoice()

3.3 快速查找技巧

1. 小程序的初学者可能对于小程序的官网的众多内容一时毫无头绪,无从下手不知道从哪
来找想要的内容
2. 当在小程序中想要实现某一种布局,查看:组件
3. 当在小程序中想要实现某一个功能,查看 : API
4. 当在小程序中想要进行某一个配置或者某一种页面语法,查看 : 框架 + 指南
5. 查看小程序官网的时候要细心,最好是将要使用的 API 的相关内容看完整,因为 API
配置及限制较多

第 4 章 小程序重点知识汇总

4.1 小程序本地存储

语法说明

1. 存入数据
a) wx.setStorage() 异步
b) wx.setStorageSync() 同步

 

2. 读取数据
a) wx.getStorage() 异步
b) wx.getStorageSync() 同步

 

3. 删除数据
a) wx.removeStorage() 异步
b) wx.removeStroageSync() 同步

 

4. 清空数据
a) wx.clearStorage() 异步
b) wx.clearStorageSync() 同步

注意事项  

1. 除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用
2. 单个 key 允许存储的最大数据长度为 1MB
3. 所有数据存储上限为 10MB

官网对应地址

https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorage.html

4.2 小程序前后端交互

语法说明

1. wx.request()

 

相关配置

1. 每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信
2. 服务器域名请在 「小程序后台 - 开发 - 开发设置 - 服务器域名」 中进行配置
3. 默认超时时间和最大超时时间都是 60s
4. 超时时间可以在 app.json 中通过 networktimeout 配置

注意事项

1. 小程序为了安全起见只支持 Https 请求
2. wx.request 最大并发限制 10

官网对应地址

https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorage.html

4.3 小程序页面通信

路由传参

1. 传参方式
a) 路由地址中 + query 传参数
b) 示例: url?a=123
2. 获取参数
a) 跳转目标页面的 onLoad 函数中的 options 实参中获取

 

消息订阅发布

1. 使用第三方库 : pubsub-js
2. 安装 : npm install pubsub-js
3. 使用:
a) Import PubSub from ‘pubsub-js’
b) 订阅消息 : PubSub.subscribe(‘eventName’, callback)
c) 发布消息 : PubSub.publish(‘eventName’, data)
d) 取消订阅 : PubSub.unsubscribe(‘eventName’)

eventChannel 事件通道

1. 订阅事件
a) wx.navigateTo() 跳转的时候在 events 选项中定义事件名及事件对应的回调

 

2. 获取事件总线对象
a)
目标页面中通过 : 实例 .getOpenerEventChannel()
b) 示例 : const eventChannel = this.getOpenerEventChannel()
3. 触发事件
a) eventChannel.emit(‘ 事件名 ’, data)

4.4 小程序自定义组件 

创建组件

1. 开发工具中右键新建组件
2. 组件对应的 json 文件中设置 : component: true

 

使用组件

1. 使用组件的页面的 json 文件中注册使用组件

 

4.5 小程序使用 npm

初始化 package.json

npm init

勾选允许使用 npm

当前最新版本微信开发者工具不需要

 

下载 npm

npm install packageName

构建 npm

1. 开发工具 ---> 工具 ---> 构建 npm
2. 会将 node_modules 中的包打包到 miniprogram_npm

4.6 小程序获取用户基本信息

1. Button 组件设置 open-type 属性为 getUserInfo
2. <button open-type=’getUserInfo’></button>
3. 设置后首次登陆点击 button 可以弹出授权窗口
4. 注意: 授权的动作只发生一次,除非清除缓存,点击 butotn 授权一次之后再点击
失效,不会弹出授权窗口
5. 官网对应地址 https://developers.weixin.qq.com/miniprogram/dev/component/button.html

授权之后获取

1. wx.getUserInfo()
2. 官网对应地址 :https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUse rInfo.html

 

4.7 小程序获取用户唯一标识(openId

官网图解

 

获取流程

1. wx.login()

 

2. 发送 code 给服务器端

3. 服务器端发送请求携带参数(code, appSecret, appId)给微信服务器获取 openId

a) 接口地址 :
4. appSecret, appId 在小程序首页获取

 5. 服务器获取 openId 后进行加密返回给前端

获取接口地址

请求方法: GET
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECR
ET&js_code=JSCODE&grant_type=authorization_code

4.8 小程序分包流程

为什么要分包

1. 小程序要求压缩包体积不能大于 2M ,否则无法发布
2. 实际开发中小程序体积如果大于 2M 就需要使用分包机制进行发布上传
3. 分包后可解决 2M 限制,并且能分包加载内容,提高性能
4. 分包后单个包的体积不能大于 2M
5. 分包后所有包的体积不能大于 16M

分包形式

1. 常规分包
2. 独立分包
3. 分包预下载

常规分包

1. 开发者通过在 app.json subpackages 字段声明项目分包结构
2. 特点:
a) 加载小程序的时候先加载主包,当需要访问分包的页面时候才加载分包内容
b) 分包的页面可以访问主包的文件,数据,图片等资源
c) 主包:
i.
主包来源: 除了分包以外的内容都会被打包到主包中
ii.
通常放置启动页 /tabBar 页面

 

 

 独立分包

1. 设置 independent true
2. 特点 :
a) 独立分包可单独访问分包的内容,不需要下载主包
b) 独立分包不能依赖主包或者其他包的内容
3. 使用场景
a) 通常某些页面和当前小程序的其他页面关联不大的时候可进行独立分包
b) 如:临时加的广告页 || 活动页

 

分包预下载

1. 配置
a) app.json 中设置 preloadRule 选项
b) key( 页面路径 ): {packages: [ 预下载的包名 || 预下载的包的根路径 ])}

 

2. 特点 :
a) 在加载当前包的时候可以设置预下载其他的包
b) 缩短用户等待时间,提高用户体验

官网对应地址

https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages.html

4.9 小程序转发分享

分享实现

1. Button 组件设置 open-type share
2. <button open-type=’share’ ></button>

自定义分享内容

1. 生命周期回调中 onShareAppMessage 回调中 return 对象设置自定义内容

 

设置体验权限

1. 开发阶段分享给微信好友,默认没有体验权限,无法打开分享小程序,需要在开发
页面设置
2. 最多添加 15 个微信好友

 


http://chatgpt.dhexx.cn/article/46MUN7He.shtml

相关文章

1. KVM虚拟化理论知识

基本概念 虚拟化是指在一个物理上运行多台虚拟机&#xff0c;各虚拟机之间共享cpu、内存等资源&#xff0c;但在逻辑上是相互隔离的。这样的物理机被称为是宿主机&#xff0c;各个虚拟机被称为是客户机 虚拟化的本质是资源抽象化&#xff0c;将资源最小化&#xff0c;按需使用…

KVM(Kernel-basedVirtual Machine)虚拟化技术——超详细理论+实验!!!

文章目录 一、虚拟化技术(KVM)是什么&#xff1f;1.1 KVM技术的具体作用 二、KVM技术发展2.1 虚拟化类型 三、KVM运行时的三种模式四、KVM工作原理五、KVM特性5.1 优势5.2 劣势 六、虚拟化前、后对比6.1 虚拟化前6.2 虚拟化后 七、KVM虚拟化平台实操7.1 拓扑图7.2 虚拟机资源环…

KVM虚拟化(1) | KVM简介

目录 1、kvm架构 2、架构解析 3、kvm和qemu的作用 1、kvm架构 2、架构解析 从rhel6开始使用&#xff0c;红帽公司直接把KVM的模块做成了内核的一部分。xen用在rhel6之前的企业版中默认内核不支持&#xff0c;需要重新安装带xen功能的内核KVM 针对运行在x86 硬件上的、驻留在…

KVM 虚拟化技术 | 虚拟化平台部署

KVM 虚拟化技术 一、虚拟化技术1.1 概述1.2 类型① 全虚拟化② 半虚拟化③ 直通 1.3 特点 二、KVM2.1 概述2.2 原理2.3 虚拟化架构2.4 工作流程 三、部署 KVM 虚拟化平台3.1 宿主机最低配置3.2 环境优化① 关闭 DNS 反向解析② 将镜像光盘设置为自动挂载③ 设置本地源和网络源④…

KVM虚拟化技术(理论理解以及虚拟化平台搭建步骤)

KVM虚拟化技术 文章目录 KVM虚拟化技术一、虚拟化产生背景二 、虚拟化技术简介2.1 虚拟化技术2.2 虚拟化技术发展2.3 虚拟化类型2.4 特性 三、KVM3.1 广义KVM3.2 KVM架构以及原理3.3 KVM工作流程 四、KVM虚拟化平台部署一、虚拟机资源二、实验环境三、安装KVM三、设置KVM网络四…

KVM虚拟化技术的-NUMA技术和应用

KVM虚拟化技术的-NUMA技术和应用 NUMA技术是解决多CPU共同工作的技术方案&#xff0c;多CPU共同工作主要有3中架构&#xff1a;SMP&#xff1a;Symmetric Multi-Processor)&#xff0c;非统一存储访问结构(NUMA&#xff1a;Non-Uniform Memory Access)&#xff0c;以及海量并行…

KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机

一 .KVM 简介 KVM &#xff08;名称来自英语&#xff1a; Kernel-basedVirtual Machine 的缩写&#xff0c;即基于内核的虚拟机&#xff09; &#xff0c; 是一种用于Linux内核中的虚拟化基础设施&#xff0c;可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux …

KVM-虚拟化技术之Hypervisor-架构

Hypervisor 是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件&#xff0c;因此也可以看作是虚拟环境中 的“元”操作系统&#xff0c;它可以协调访问服务器上的所有物理设备和虚拟机&#xff0c;也叫 虚拟机监视器&#xff08;…

KVM虚拟化技术学习-基础入门

1.虚拟化技术概述 虚拟化[Virtualization]技术最早出现在 20 世纪 60 年代的 IBM ⼤型机系统&#xff0c;在70年代的 System 370 系列中逐渐流⾏起来&#xff0c;这些机器通过⼀种叫虚拟机监控器[Virtual Machine Monitor&#xff0c;VMM]的程序 在物理硬件之上⽣成许多可以运⾏…

KVM虚拟化技术学习-KVM管理

二&#xff0c;KVM管理 1.升级配置 1.创建一个空磁盘卷 [rootlocalhost ~]# qemu-img create -f qcow2 /kvm/images/disk2.qcow2 5G Formatting disk2.qcow2, fmtqcow2 size5368709120 encryptionoff cluster_size65536 lazy_refcountsoff 2.修改配置文件 <disk typefi…

KVM虚拟化技术原理简介

KVM KVM架构概述KVM运行时的三种模式KVM工作原理 硬件虚拟化技术1、CPU虚拟化2、内存虚拟化3、I/O虚拟化 KVM虚拟化平台部署1.虚拟机资源2.安装KVM3.设置KVM网络4.KVM部署与管理 KVM架构概述 KVM架构很简单&#xff0c;就是内核的一个模块KVM是集成到内核的hypervisorI&#x…

KVM虚拟化技术实践

[版权申明&#xff1a;本文系作者原创&#xff0c;转载请注明出处] 文章出处&#xff1a;http://blog.csdn.net/sdksdk0/article/details/54809159 作者&#xff1a;朱培 ID&#xff1a;sdksdk0 今天分享的文章是关于云计算中的kvm&#xff08;虚拟化技术&#xff09;&…

详解KVM虚拟化原理

详解KVM虚拟化原理 KVM架构 KVM&#xff08;Kernel-based Virtual Machine&#xff09;包含一个为处理器提供底层虚拟化、可加载的核心 模块kvm.ko&#xff08;kvm-intel.ko或kvm-amd.ko&#xff09;&#xff0c;使用QEMU&#xff08;QEMU-KVM&#xff09;作为虚拟机上层 控制…

KVM虚拟化技术介绍以及相关操作

一、KVM架构 KVM功能&#xff0c;是以扩展虚拟化CPU为硬件基础&#xff08;如Intel-VT,AMD-V&#xff09;&#xff0c;利用CPU虚拟化技术。 KVM作为内核的一个模块&#xff0c;来提供虚拟化功能。如果系统需要虚拟化功能&#xff0c;则KVM模块可以被linux内核按需动态加载到内…

KVM(虚拟化平台)概念及部署

KVM&#xff08;虚拟化平台&#xff09;概念及部署 一、虚拟化技术二、虚拟化技术发展三、虚拟化特性优势&#xff1a;劣势&#xff1a; 四、KVM架构及原理&#xff08;一&#xff09;KVM虚拟化架构/三种模式&#xff08;二&#xff09;KVM原理总结&#xff1a;&#xff08;三&…

KVM 虚拟化

kvm虚拟化 Kvm的安装、KVM下的虚拟机安装和相互访问约束 推荐下载TightVNC 也可以使用 VNCSever 一、虚拟化产品介绍 linux类的虚拟化软件: qemu&#xff0c;软件纯模拟全虚拟化软件&#xff0c;特别慢!xen(半)&#xff0c;性能特别好&#xff0c;需要使用专门修改之后的内…

Linux KVM 虚拟化技术

一 、 KVM 介绍 &#xff1b; KVM 全称是 基于内核的虚拟机&#xff08;Kernel-based Virtual Machine&#xff09;&#xff0c;它是Linux 的一个内核模块&#xff0c;该内核模块使得 Linux 变成了一个 Hypervisor&#xff1a; ① 、它由 Quramnet 开发&#xff0c;该公司于…

KVM 虚拟化详解

服务器虚拟化是云计算最核心的技术&#xff0c;而KVM是当前最主流的开源的服务器虚拟化技术。从Linux2.6.20起&#xff0c;KVM作为内核的一个模块 集成到Linux主要发行版本中。从技术架构&#xff08;代码量、功能特性、调度管理、性能等&#xff09;、社区活跃度&#xff0c;以…

KVM 虚拟化技术(理论详解+实战)

文章目录 前言什么是虚拟化为什么要用虚拟化虚拟化技术的优势KVM简介关于KVM关于Virtual Machine Manager其他虚拟化软件 KVM虚拟化平台部署 前言 什么是虚拟化 在计算机技术中&#xff0c;虚拟化&#xff08;技术&#xff09;或虚拟技术&#xff08;英语&#xff1a;Virtual…

虚拟化技术之KVM,搭建KVM(详细)

首先说一下&#xff0c;KVM是基于硬件辅助的开源全虚拟化解决方案 一、KVM&#xff08;基于内核的虚拟机&#xff09;【刚开始是一家以色列的公司开发的&#xff0c;后来红帽觉得KVM很有前景&#xff0c;就把KVM收购了】。 二、KVM包含了一个内核加载模块&#xff0c;是一个.…