微信小程序开发文档_第1页
微信小程序开发文档_第2页
微信小程序开发文档_第3页
微信小程序开发文档_第4页
微信小程序开发文档_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微信小程序开发文档1.文档概述1.1文档目的本文档用于规范微信小程序开发流程、技术标准、核心模块实现及上线部署,为开发人员提供全面的开发指引,确保开发过程高效、规范,保障小程序功能稳定、体验流畅,同时为后续维护和迭代提供参考依据。1.2适用范围本文档适用于参与微信小程序开发的前端开发人员、后端开发人员、测试人员、产品经理及相关运维人员,涵盖小程序从需求确认、环境搭建、代码开发、调试测试到上线发布的全生命周期。1.3开发环境说明微信小程序开发依赖微信官方提供的开发者工具,结合前端技术栈(WXML、WXSS、JavaScript/TypeScript)及后端接口服务,支持多端预览(模拟器、真机、Web端),具体环境要求详见本文档2.2章节。2.前期准备2.1账号注册与配置2.1.1小程序账号注册1.访问微信公众平台(/),点击“立即注册”,选择“小程序”类型;2.填写注册信息,包括邮箱、密码、小程序名称、主体类型(个人/企业/政府/媒体等),完成邮箱验证和主体身份认证;3.个人主体需完成实名认证(上传身份证正反面、人脸识别),企业主体需上传营业执照、对公账户信息等,认证通过后即可获得小程序账号使用权;4.注意事项:小程序名称不可重复且不能侵权他人商标,所有小程序均需完成工信部备案,备案提交前微信团队会进行初审,备案通过后可正常被搜索;微信认证需缴纳30元费用,认证未通过不影响开发和上线,但会限制分发(每日限50人访问)和搜索功能。2.1.2账号核心配置1.获取AppID:登录小程序后台,进入「开发管理」-「开发设置」,获取小程序唯一标识AppID(开发阶段需用到,用于关联项目、调试和上线),若仅用于测试,可选择“无AppID”模式,但部分功能会受限;2.服务器域名配置:正式环境下,小程序需配置合法的服务器域名(仅支持HTTPS协议),包括request域名、uploadFile域名、downloadFile域名等,配置路径为「开发管理」-「开发设置」-「服务器域名」,测试阶段可在开发者工具中勾选“不校验合法域名”;3.接口权限申请:根据小程序功能需求,申请对应接口权限(如获取用户信息、地理位置、支付等),路径为「开发」-「接口设置」,申请通过后即可在开发中调用对应接口。2.2开发环境搭建2.2.1必备工具安装1.微信开发者工具:下载地址(/miniprogram/dev/devtools/download.html),支持Windows、macOS系统,根据系统版本选择对应安装包,安装后启动并通过微信扫码登录;2.辅助工具:(1)Node.js:版本需10.x及以上,用于支持npm包管理、后端接口调试等,下载地址(/zh-cn/);(2)代码编辑器:推荐VSCode(搭配微信小程序插件)、WebStorm,用于代码编写和格式化;(3)Python:macOS通常自带,Windows需手动安装(版本2.x或3.x均可),用于部分工具依赖支持。2.2.2开发者工具配置1.首次启动配置:登录后选择外观主题(浅色/深色)、调试主题、字号等基础设置,代理设置默认选择“不使用任何代理,直连网络”;2.项目创建:点击“新建项目”,填写项目名称、本地存储路径,选择AppID(或“无AppID”),开发模式选择“小程序”,模板推荐初学者选择“JS-基础模板”或“TS-基础模板”,点击“创建”即可生成基础项目结构;3.基础库设置:在项目设置中选择与代码兼容的基础库版本,建议选择最新稳定版,确保功能兼容性;4.外部编辑器配置:如需使用VSCode等外部编辑器,进入「偏好设置」-「编辑器」,设置默认编辑器路径,实现代码同步编辑。3.核心开发规范3.1项目目录结构规范小程序项目采用固定的目录结构,所有文件需按以下规范组织,确保代码可维护性:plaintext

project///项目根目录(不可用“wx-”为前缀)

├──app.js//小程序全局逻辑(入口文件)

├──app.json//小程序全局配置(页面路径、窗口样式等)

├──app.wxss//小程序全局样式(作用于所有页面)

├──pages///页面目录(每个页面一个子目录)

│├──index///首页目录

││├──index.js//首页逻辑

││├──index.wxml//首页结构(页面模板)

││├──index.wxss//首页样式(仅作用于当前页面)

││└──index.json//首页配置(覆盖全局window配置)

│└──detail///详情页目录(其他页面同理)

├──components///自定义组件目录(可复用组件)

│├──common///通用组件(如按钮、导航栏)

│└──business///业务组件(如商品卡片、评论列表)

├──utils///工具函数目录(公共方法、工具类)

├──static///静态资源目录(图片、字体、音频等)

├──config///配置文件目录(接口地址、常量等)

└──project.config.json//项目配置文件(开发者工具配置)注意事项:自定义组件和页面所在项目根目录名不能以“wx-”为前缀,否则会报错。3.2代码开发规范3.2.1WXML语法规范WXML(WeiXinMarkupLanguage)是小程序的页面结构语言,用于描述页面布局,语法规范如下:1.数据绑定:通过双大括号{{}}实现数据与视图的绑定,支持内容绑定、属性绑定和简单运算;html

<!--内容绑定-->

<view>{{message}}</view>

<!--属性绑定(属性值需用双引号包裹)-->

<!--简单运算-->

<view>{{1+2}}</view><!--算术运算-->

<view>{{isShow?'显示':'隐藏'}}</view><!--逻辑判断-->

<view>{{'Hello'+name}}</view><!--字符串拼接-->2.条件渲染:使用wx:if系列(wx:if、wx:elif、wx:else)或hidden控制元素渲染,wx:if动态创建/移除元素,适合条件不常变化的场景;hidden通过样式控制显示(display:none),适合频繁切换的场景;3.列表渲染:通过wx:for循环渲染列表数据,配合wx:key提高性能,wx:key推荐使用数据中的唯一字段(如id),避免使用index(频繁更新时可能出错);html

<viewwx:for="{{list}}"wx:key="id">

{{index}}:{{}}

</view>4.事件绑定:通过bind:事件名或catch:事件名绑定,事件处理函数定义在页面.js中,bind不阻止事件冒泡,catch阻止事件冒泡;通过data-*自定义属性传递参数,在事件对象中通过e.currentTarget.dataset获取;html

<!--事件绑定与参数传递-->

<!--页面.js中定义事件处理函数-->

Page({

handleClick(e){

console.log(e.currentTarget.dataset.id)//输出123

}

})5.表单双向绑定:通过wx:model实现表单控件与数据的双向绑定,无需手动监听输入事件;html

<checkboxwx:model="{{isAgree}}"/同意协议3.2.2WXSS语法规范WXSS(WeiXinStyleSheet)是小程序的样式语言,基于CSS扩展,语法规范如下:1.尺寸单位:推荐使用rpx(响应式像素),规定屏幕宽度为750rpx,适配不同设备(375px宽设备中1rpx=0.5px,750px宽设备中1rpx=1px);2.样式导入:通过@import导入外部WXSS文件,路径为相对路径;css

/*页面.wxss中导入全局样式*/

@import"../../common/common.wxss";

.container{

padding:20rpx;

}3.选择器:支持类选择器(.class)、id选择器(#id)、元素选择器(view、button等)、后代选择器(.parent.child)、伪类选择器(:active、:focus),不支持通配符(*)、属性选择器等;4.样式优先级:页面.wxss中定义的局部样式会覆盖app.wxss中的全局样式,遵循CSS优先级规则;自定义组件的wxss中不应使用ID选择器、属性选择器和标签名选择器。3.2.3JavaScript/TypeScript规范1.全局逻辑(app.js):使用App()函数注册小程序,定义全局数据、生命周期函数(onLaunch、onShow、onHide等),全局方法可通过getApp()获取;javascript

//app.js

App({

globalData:{

userInfo:null

},

onLaunch(){

//小程序初始化时执行

},

onShow(){

//小程序显示时执行

}

})2.页面逻辑(页面.js):使用Page()函数注册页面,定义页面数据、生命周期函数(onLoad、onShow、onReady等)、事件处理函数;javascript

//index.js

Page({

data:{

message:"Hello小程序"

},

onLoad(options){

//页面加载时执行,options为页面跳转参数

},

handleTap(){

//事件处理函数

this.setData({message:"点击成功"});//更新页面数据

}

})3.工具函数:将公共方法(如日期格式化、接口请求封装)放在utils目录下,通过module.exports导出,在需要的地方导入使用;4.代码规范:遵循ES6+语法,使用let/const声明变量,避免使用var;函数命名采用小驼峰命名法(如handleClick),组件/页面命名采用中划线命名法(如user-info);注释清晰,关键逻辑需添加注释,便于后续维护。3.2.4JSON配置规范小程序的配置文件均为JSON格式,无注释,语法严格,主要包括全局配置和页面配置:1.全局配置(app.json):配置小程序全局属性,包括页面路径、窗口样式、tabBar、网络超时时间等;json

{

"pages":[

"pages/index/index",

"pages/logs/logs"

],

"window":{

"navigationBarTitleText":"小程序示例",

"navigationBarBackgroundColor":"#ffffff",

"navigationBarTextStyle":"black"

},

"tabBar":{

"list":[

{

"pagePath":"pages/index/index",

"text":"首页",

"iconPath":"/images/home.png",

"selectedIconPath":"/images/home-selected.png"

},

{

"pagePath":"pages/logs/logs",

"text":"日志",

"iconPath":"/images/log.png",

"selectedIconPath":"/images/log-selected.png"

}

]

},

"networkTimeout":{

"request":10000

}

}2.页面配置(页面.json):配置当前页面的窗口表现,覆盖全局配置中window字段的同名属性;json

{

"navigationBarTitleText":"首页",

"enablePullDownRefresh":true,

"backgroundTextStyle":"dark"

}3.组件配置(组件.json):需将component字段设为true,声明该文件为自定义组件;json

{

"component":true

}3.3自定义组件开发规范从小程序基础库版本1.6.3开始支持自定义组件,可将功能模块抽象为组件复用,或拆分复杂页面便于维护,开发规范如下:1.组件创建:一个自定义组件由json、wxml、wxss、js四个文件组成,需在json文件中声明component:true;javascript

//组件js文件(使用Component()注册)

Component({

properties:{

//外部传入的属性,可指定类型、默认值

innerText:{

type:String,

value:'defaultvalue'

}

},

data:{

//组件内部数据

someData:{}

},

methods:{

//组件自定义方法

customMethod:function(){}

}

})2.组件使用:在页面json文件中通过usingComponents字段声明引用,指定组件标签名和文件路径,即可在页面wxml中像基础组件一样使用;json

//页面json文件

{

"usingComponents":{

"component-tag-name":"path/to/the/custom/component"

}

}html

<!--页面wxml中使用自定义组件-->

<component-tag-nameinnerText="自定义组件"></component-tag-name>3.注意事项:自定义组件标签名只能包含小写字母、中划线和下划线;自定义组件可嵌套引用其他自定义组件;使用usingComponents的页面,this对象的原型会有差异,新增selectComponent等方法。4.核心功能开发指南4.1页面导航与跳转小程序页面跳转通过核心API实现,负责页面导航、参数传递和页面栈管理,常用API及用法如下:1.wx.navigateTo:保留当前页面,跳转到应用内非tabBar页面,可通过返回键返回,跳转层级最多10层,不可跳转到tabBar页面;javascript

//跳转并传递参数(id和name)

wx.navigateTo({

url:'/pages/detail/detail?id=2026&name=小程序API指南'

});

//目标页面接收参数(在onLoad生命周期中)

Page({

onLoad(options){

console.log('接收的id:',options.id);//输出2026

console.log('接收的名称:',);//输出小程序API指南

}

});2.wx.redirectTo:关闭当前页面,跳转到应用内非tabBar页面,无法返回原页面,适合登录后、提交表单后等一次性跳转场景;javascript

//登录成功后跳转到首页,关闭登录页

wx.redirectTo({url:'/pages/home/home'});3.wx.switchTab:跳转到app.json中配置的tabBar页面,同时关闭其他所有非tabBar页面,url后不能拼接参数;javascript

//跳转到tabBar中的“我的”页面

wx.switchTab({url:'/pages/mine/mine'});4.wx.navigateBack:关闭当前页面,返回上一页面或指定层级的页面,delta值不能超过现有页面栈层数;javascript

//返回上1级页面(默认delta=1)

wx.navigateBack({delta:1});

//返回上3级页面

wx.navigateBack({delta:3});5.wx.reLaunch:关闭应用内所有页面,跳转到任意页面(支持tabBar和非tabBar页面),适合退出登录、切换账号等重置页面栈场景;javascript

//退出登录后,关闭所有页面跳转到登录页

wx.reLaunch({url:'/pages/login/login'});4.2数据请求与交互小程序通过wx.requestAPI实现与后端服务器的数据交互,支持GET、POST等请求方式,核心用法如下:javascript

//场景1:GET请求(获取天气数据)

wx.request({

url:'/weather',//后端接口地址(必须HTTPS)

method:'GET',

data:{city:'北京',date:'2026-01-08'},//传递给后端的参数

header:{'content-type':'application/json'},//默认请求头

success(res){

//请求成功:res.data为后端返回数据

console.log('天气数据:',res.data);

this.setData({weatherList:res.data.result});

},

fail(err){

//请求失败:打印错误信息并提示用户

console.error('请求失败:',err);

wx.showToast({title:'数据加载失败',icon:'none'});

},

complete(){

//无论成功/失败都执行(如隐藏加载提示)

wx.hideLoading();

}

});

//场景2:POST请求(提交登录表单)

wx.request({

url:'/login',

method:'POST',

data:{username:'test',password:'123456'},

header:{'content-type':'application/x-www-form-urlencoded'},//POST常用请求头

success(res){

if(res.data.code===200){

wx.showToast({title:'登录成功'});

}

}

});避坑要点:仅支持HTTPS协议,HTTP接口无法请求;正式环境需配置合法服务器域名,测试阶段可勾选“不校验合法域名”;不同后端要求的content-type可能不同,需按接口文档调整。4.3本地存储本地存储用于保存用户信息、偏好设置、浏览记录等数据,支持离线读取,分为同步API和异步API,新手优先掌握同步API:操作类型API方法(同步)代码示例保存数据wx.setStorageSync(key,data)wx.setStorageSync('userInfo',{nickName:'小明',userId:'666'})读取数据wx.getStorageSync(key)constuserInfo=wx.getStorageSync('userInfo')删除数据wx.removeStorageSync(key)wx.removeStorageSync('userInfo')清空所有数据wx.clearStorageSync()wx.clearStorageSync()注意事项:本地存储容量有限(单个小程序最多10MB),不建议存储敏感数据(如密码);同步API会阻塞当前线程,大量数据操作建议使用异步API(wx.setStorage等)。4.4常用API调用除上述导航、请求、存储API外,小程序提供丰富的原生API,覆盖用户交互、设备能力、媒体操作等场景,常用API如下:1.用户交互API:wx.showToast(提示框)、wx.showModal(确认框)、wx.showLoading(加载提示);javascript

//提示框(成功提示)

wx.showToast({

title:'操作成功',

icon:'success',

duration:1500

});

//确认框

wx.showModal({

title:'提示',

content:'确定要删除吗?',

success(res){

if(res.confirm){

//用户点击确认

}elseif(res.cancel){

//用户点击取消

}

}

});2.设备能力API:wx.getSystemInfo(获取设备信息)、wx.getLocation(获取地理位置);3.媒体操作API:wx.chooseImage(选择图片)、wx.previewImage(预览图片)、wx.playVoice(播放音频)。5.调试与测试5.1开发者工具调试1.模拟器调试:开发工具左侧为模拟器,可选择不同设备型号(如iPhone、Android),实时预览页面效果,修改代码后自动刷新;2.调试器使用:右侧调试器包含Console(日志输出)、Elements(页面结构查看)、Network(网络请求监控)、AppData(页面数据查看)等面板,可排查代码错误、监控接口请求;3.断点调试:在代码中设置断点,通过调试器的Sources面板控制代码执行,查看变量值,定位逻辑错误;4.本地设置:测试阶段可在「设置」-「项目设置」-「本地设置」中勾选“不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书”,避免域名配置影响调试。5.2真机调试1.预览功能:点击开发工具顶部“预览”按钮,生成小程序二维码,使用微信扫码即可在真机上预览,适合测试页面适配、交互效果;2.真机调试:点击“真机调试”按钮,扫码后可在开发工具中实时查看真机的日志、网络请求,便于排查真机专属问题;3.体验版:将代码上传至小程序后台,设置为体验版,邀请测试人员扫码体验,收集反馈意见。5.3测试要点1.功能测试:验证每个功能模块是否正常运行(如页面跳转、数据请求、按钮点击等);2.适配测试:测试不同设备(手机型号、屏幕尺寸)、不同微信版本的适配效果,确保页面无错乱;3.性能测试:检查页面加载速度、接口响应速度,避免卡顿、闪退;4.兼容性测试:测试iOS和Android系统的兼容性,确保功能在不同系统上一致;5.异常测试:模拟网络异常、数据异常、用户误操作等场景,验证小程序的容错能力。6.上线部署6.1上线前准备1.代码审核:检查代码是否符合微信小程序规范,删除测试代码、调试日志,确保代码整洁、无冗余;2.功能验收:完成所有测试用例,确保功能正常、无bug,用户体验符合需求;3.资质准备:根据小程序类型(如电商、医疗、教育),准备对应的资质文件(如营业执照、行业许可证),用于提交审核;4.服务器配置:确认服务器域名已配置正确,接口正常可用,HTTPS证书有效;5.小程序信息完善:在小程序后台完善小程序名称、图标、简介、类目等信息,确保符合微信规范。6.2代码上传1.打开微信开发者工具,点击顶部“上传”按钮;2.填写版本号(如1.0.0)、更新说明(简要描述本次更新内容);3.点击“上传”,等待上传完成,上传成功后可在小程序后台「版本管理」中查看。6.3审核发布1.登录小程序后台,进入「版本管理」,选择已上传的版本,点击“提交审核”;2.填写审核信息,包括审核类目、资质文件、测试账号(如有需要),提交后等待微信官方审核;3.审核周期:一般1个工作日,审核结果会通过微信公众号、邮件通知;4.审核通过:审核通过后,进入「版本管理」,点击“发布”,小程序即可正式上线,用户可搜索访问;5.审核失败:若审核失败,根据反馈意见修改问题,重新上传审核,直至审核通过。6.4版本更新1.小程序上线后,若需更新功能,重复6.2、6.3章节步骤,上传新版本、提交审核;2.可设置“灰度发布”,让部分用户先体验新版本,收集反馈后再全面发布;3.版本回滚:若新版本出现严重bug,可在「版本管理」中选择历史稳定版本,点击“回滚”,快速恢复到之前的版本。7.常见问题与解决方案7.1开发阶段问题1.问题:页面跳转失败,提示“navigateTo:failcannotnavigatetotabbarpage”;解决方案:wx.navigateTo无法跳转到tabBar页面,需使用wx.switchTab跳转

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论