
最近一直在做小程序,工作中也遇到了一些问题,踩了一些坑,所以想着写篇文章记录下来,并借此将小程序开发的相关知识进行梳理,方便以后参考,也为刚刚接触小程序的人提供一些思路方法,互相学习,共同进步。
1、微信小程序的目录结构及配置说明
appjson是小程序的全局配置文件,所有配置项key必须使用 双引号括起来 ,value值为字符串类型的也必须使用双引号, 不支持单引号 。
11 pages
pages选项是必须配置的。该配置项注册了小程序所有页面的地址,其中每一项都是页面的 路径+文件名 。每一个页面都是由json、js、wxml、wxss四个文件组成,并且 四个文件的名字必须要一致 。
12 tabBar
tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab
13 usingComponents
使用自定义组件或者插件提供的组件前,必须先在这里声明
2、开发微信小程序遇到的问题及解决办法
21 双向绑定
微信小程序不支持通过v-model的方式实现自动双向绑定,需要给表单元素通过绑定事件,并使用thissetData来赋值实现。
22 computed和watch
微信小程序默认是不支持computed和watch的,如需要使用这两项功能,需要安装miniprogram-computed ,安装方法见 官方文档
23 对象赋值
如果给对象的属性赋值,可以使用thissetData({'objkey':value})来赋值,但是如果给某个属性名是变量的属性赋值,通过这种方法是会报错的,经过多次尝试,发现使用如下的方式赋值成功。
let newObj = `obj${key}`
thissetData({
[newObj]: value
})
24 scroll-view
当页面存在d框容器,并且d框里的内容是需要滚动条滚动展示时,如果d框下面那层的容器使用view元素的话,会导致滚动d框内容时,同时会触发d框下面那层的页面容器也会一起滚动,解决此问题可以将d框下面的容器使用scroll-view元素替代view元素
3、小程序测试和发布
由于服务器域名request合法域名每个月 只能修改5次 ,因此在本地开发小程序时,需要在微信调试工具中设置不校验合法域名。等小程序上线前再一次性将所有域名添加到小程序管理后台。
以上便是此次小程序开发中积累的一些经验,希望能给刚刚接触小程序的人提供一些思路方法,在以后的开发中,如果遇到新的问题,继续更新文档
(说明:appid是小程序的身份z号码,是微信公众平台上的小程序ID,有了它,微信客户端才能确定你的小程序“身份”,并使用微信提供的高级接口。至于appid有什么用,appID就像门牌,AppSecret就像钥匙。AppID可以公开,但是AppSecret必须保密。而且微信官方文档反复强调,AppSecret的安全级别很高,也就是说如果泄露出去安全风险很大,要小心保管。你可以重新生成AppSecret,但是切记重新生成AppSecret前,跟你的程序员或技术外包服务商协调好,程序里如果有用到AppSecret的地方,要同步修改,否则程序会报错。)
(1)需要用户触发跳转,从 230 版本开始,若用户未点击小程序页面任意位置,则开发者将无法调用此接口自动跳转至其他小程序。
(2)需要用户确认跳转,从 230 版本开始,在跳转至其他小程序前,将统一增加d窗,询问是否跳转,用户确认后才可以跳转其他小程序。如果用户点击取消,则回调 fail cancel。
(3)无需声明跳转名单,不限跳转数量 (众测中) ,从2020年4月24日起,使用跳转其他小程序功能将无需在全局配置中声明跳转名单,调用此接口时将不再校验所跳转的 AppID 是否在 navigateToMiniProgramAppIdList 中。
从2020年4月24日起,跳转其他小程序将不再受数量限制,使用此功能时请注意遵守运营规范。
3,关于调试
在开发者工具上调用此 API 并不会真实的跳转到另外的小程序,但是开发者工具会校验本次调用跳转是否成功。
开发者工具上支持被跳转的小程序处理接收参数的调试。
4,实例
信息来源微信小程序开发文档
》小程序跳转 wxnavigateToMiniProgram()
》小程序调试支持
小程序getLocation需要在appjson中声明permission字段,个别需要获取用户地理位置的在开发者工具调试时会出现getLocation需要在appjson中声明permission字段 提示,
如下图:
appjson里加上这个
publicjs文件对 moduleexports 进行声明和定义
hunting_enroll_managementjs文件使用 moduleexports 中的内容
1进入微信公众平台,注册小程序账号,根据提示填写对应的信息即可。
2注册成功后进入首页,在小程序发布流程->小程序开发与管理->配置服务器中,点击“开发者设置”。
3会获得一个AppID,记录AppID,后面创建项目时会用到。
注意:如果要以非管理员微信号在手机上体验该小程序,那么我们还需要 *** 作“绑定开发者”。即在“用户身份”-“开发者”模块,绑定上需要体验该小程序的微信号。本教程默认注册帐号、体验都是使用管理员微信号
二、下载微信web开发者工具
为了帮助开发者简单和高效地开发,微信小程序推出了全新的开发者工具,集成了开发调试、代码编辑及程序发布等功能。1下载页面:t=201715根据系统,选择对应的工具版本下载2工具包含编辑、调试和项目三个页卡:(1)编辑区可以对当前项目进行代码编写和文件的添加、删除以及重命名等基本 *** 作(2)程序调试主要有三大功能区:模拟器、调试工具和小程序 *** 作区(3)项目页卡主要有三大功能:显示当前项目细节、提交预览和提交上传和项目配置
注意:启动工具时,开发者需要使用已在后台绑定成功的微信号扫描二维码登录,后续所有的 *** 作都会基于这个微信帐号
三、编写小程序实例
1实例目录结构
2实例文件说明及源码一个小程序包含一个app(主体部分)和多个page(页面)(1)app是用来描述整体程序的,由三个文件组成,js后缀的是脚本文件,json后缀的文件是配置文件,wxss后缀的是样式表文件,必须放在项目的根目录。appjs是小程序的脚本代码(必须),可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量,调用框架提供的丰富的API。
appjson是对整个小程序的全局配置(必须),用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多tab等。接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。微信小程序中的每一个页面的路径+页面名都需要写在appjson的pages中,且pages中的第一个页面是小程序的首页。
appwxss是整个小程序的公共样式表(非必须)。
(2)page是用来描述页面,一个页面由四个文件组成,这里以首页index为例,每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:indexjs、indexwxml、indexwxss、indexjson。js后缀的文件是脚本文件,json后缀的文件是配置文件,wxss后缀的是样式表文件,wxml后缀的文件是页面结构文件。indexjs是页面的脚本文件(必须),在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序实例,声明并处理数据,响应页面交互事件等。
indexwxml是页面结构文件(必须)。
indexwxss是页面样式表文件(非必须),当有页面样式表时,页面的样式表中的样式规则会层叠覆盖appwxss中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用appwxss中指定的样式规则。
indexjson是页面配置文件(非必须),当有页面的配置文件时,配置项在该页面会覆盖appjson的window中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用appjson中的默认配置。这里无需指定。Tips:a为了方便开发者减少配置项,小程序规定描述页面的这四个文件必须具有相同的路径与文件名b小程序提供了丰富的API,可以根据自己需求选择
四、测试小程序实例
1打开微信web开发者工具,选择“本地小程序项目”。2填写小程序的AppID,项目名称,选择第三步写好的小程序实例文件夹,点击“添加项目”。3如果出现如下效果,那么恭喜你,你的第一个小程序项目已经编写成功了!点击左侧边栏“编辑”,还可以在右侧编辑窗口直接对代码进行修改,保存(CTRL+S)后刷新(F5)即可生效。
4如果想看小程序项目在手机上的效果,点击左侧边栏“项目”,点击“预览”生成二维码,打开微信扫描,就可以看到了。
(1)使用本地缓存
(2)通过页面路由
在使用url进行参数传递时候,传递数据有字节限制,如果要传递对象,需要先把对象通过JSONstringify转换成字符串,接收或再通过JSONparse转换成对象
demo
<template is="模板名" data="数据对象" />
A页面跳转到B页面
页面传值
微信小程序 页面传值详解
一 跨页面传值
1 用 navigator标签传值或 wxnavigator, 比如
这里将good_id=16 参数传入detail页面, 然后detail页面的 onload方法内接受
如果需要传多个参数, 用 & 链接即可
如果要传 数组, 字典等复杂类型, 要先用 JSONstringify() 转成字符串传递
注 : 如果转化的字符串中 有""这个符号, 则只会传递""以前的字符串, 这个问题我猜想可能是小程序内部的路由处理 对这个""敏感吧
好, 这是第一种 依靠跳转的url带参数传值
2 用getCurrentPages(); 获取栈中全部页面的, 然后把数据写入相应页面
这里可以传字符串, 也能传数组等,
这样就把 address 传递并接受了
注 : 这个方法适合 往后面传值(即已经存在的页面), 这样才能在栈中找到并主动写入数据, 且 一定要在 onshow() 方法中接受, 因为再次返回只执行onshow()方法
3 写入本地, 跨页面在取出来 wxsetStorage/wxgetStorage等, 小程序中对写入本地数据 封装了很多方法, 各有侧重, 这里就不多说了
4 把 数据声明为全局变量
var detail = getApp()detail; 可在任何页面获取
二 页内传值
1 设置id的方法标识跳转后传递后的参数
在bindtap定义的点击方法 swiperTap : function(e) ; 中获取, var id = ecurrentTargetid;
2 设置 data-xxx 的方法来标识要传递的值
注 : 这里 data-index="{{index}}" 里的 {{index}} 是有效的, 在用wx-for 渲染视图层时, index 代表点击的下标 在bindtap定义的点击方法 swiperTap : function(e) ; 中获取, 即 var index = ecurrentTargetdatasetindex; 其他的参数取出也如此, var type = ecurrentTargetdatasettype;
3 form表单和input输入框
方法1:A页面跳转链接添加参数,B页面onLoad 接收
方法2:设置全局变量 globalData,用的少,一般适用于全局共享的一份信息,如用户open_id等
首先,需要申请账号
根据指引填写信息和提交相应的资料,就可以拥有自己的小程序帐号。
登录之后我们可以在菜单 “设置”-“开发设置” 看到小程序的 AppID 了 。小程序的 AppID 相当于小程序平台的一个身份z,后续你会在很多地方要用到 AppID (注意这里要区别于服务号或订阅号的 AppID)。然后还需要个工具来开发小程序。
其次,安装开发工具。
前往 开发者工具下载页面 ,根据自己的 *** 作系统下载对应的安装包进行安装,
打开小程序开发者工具,用微信扫码登录开发者工具。
然后,新建项目选择小程序项目,选择代码存放的硬盘路径,填入刚刚申请到的小程序的 AppID,给你的项目起一个好听的名字,最后,勾选 "创建 QuickStart 项目" ,点击确定,你就得到了你的第一个小程序了,点击顶部菜单编译就可以在微信开发者工具中预览你的第一个小程序。
最后,编译预览
点击工具上的编译按钮,可以在工具的左侧模拟器界面看到这个小程序的表现,也可以点击预览按钮,通过微信的扫一扫在手机上体验你的第一个小程序。
简单吧
以上就是关于小程序开发经验总结全部的内容,包括:小程序开发经验总结、小程序跳转到另一个小程序问题、小程序getLocation需要在app.json中声明permission字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)