onHide:监听页面的隐藏
- 当从当前A页跳转到其他页面,那么A页面处于隐藏状态。
onUnload:监听页面的卸载
- 当前处于A页面,点击返回按钮时,则将是A页面卸载
- 触发upload事件
1、页面重定向: wx.redirectTo
2、左上角返回按钮:wx.navigateBack
3、重启动:wx.reLaunch
跳转与返回的区别,跳转不成功的情况下尝试直接返回的形式.
同一项目设置多个appid
一个小程序配置多个不同的appid,根据不同的appid采用完全不同的链接,用于私人开发测试或者预发布
//配置不同的appid
export const APPID = { goodsDevAppId: 'wxdd4bebc8c4b9217e', JUDICIAL: 'wx5129014ec0d1fa55',};
//根据当前appid采取不同的baseurl链接
export const BASE_URL = (() => { const appid = wx.getAccountInfoSync().miniProgram.appId; return appid === APPID.goodsDevAppId ? DEV_BASE_URL : PRO_BASE_URL;})();
wx.getAccoutInfoSync()使用
developers.weixin.qq.com/miniprogram…
检测工作环境,根据不同的版本选择不同的env
function checkEnviroment() { const { miniProgram: { envVersion = 'release' }, } = wx.getAccountInfoSync(); let env = 'prod'; if (envVersion === 'develop') { // 工具或者真机 开发环境 env = 'dev'; } else if (envVersion === 'trial') { // 测试环境(体验版) env = 'dev'; } else if (envVersion === 'release') { // 正式环境 env = 'prod'; } return env; // return 'prod';}
根据env的值进行判断选择不同的url获取不同数据或者进行不同的操作
envVersion :‘develop’ env:‘dev’
envVersion :‘trial’ env:‘dev’
envVersion :‘release’ env:‘prod’
登录与获取授权
appid :小程序唯一标识
openid: 用户唯一标识
userid:授权获取用户id
wx.login :获取用户的 openID
wx.getUserInfo 接口,用于和基本信息(userid等)
wx.checkSession检测当前用户登录态是否有效
将 button 组件(其中 open-type 属性指定为 getUserInfo)放置到页面中,绑定为getUserInfo事件获取用户信息
navigateTo:fail:page limit exceeded: 10
-
要想触发销毁页面onUnload生命周期执行方法,必须要使用不存在页面栈的路由。比如:wx.reLaunch、wx.redirectTo、wx.navigateBack
-
不能使用wx.navigateTo,因为此路由是可以保存页面栈的,也就是并没有销毁页面,而是叠加页面栈,最多可以叠加5层。
-
wx.redirectTo会销毁当前页面,并添加新跳转到的页面(相当于替换)
-
wx.navigateBack会销毁当前页面,并跳转到栈的上一个页面(回退)
navigateBack:fail cannot navigate back at first page
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面bai
//直接调用上du一个页面的setData()方法,把数据存到上zhi一个页面中去dao
prevPage.setData({
mydata: {a:1, b:2}
})
可以用用getCurrentPages() 查看一下 页面的栈 , 当前的页面,返回目标的页面,是否在这个栈里面
比胖项目中
1.保持image的宽高缩放比 , 设置模式 , 默认宽为320px
2.文字滚动功能
3.setdata 为响应式的 , 直接 赋值操作非响应式
4.应用周期指的是app 文件的 周期 , page生命周期是page页面的 , 组件生命周期是组件内
5.获取用户信息几种方法 (印象中有 4 种)
open-data 可以直接获取 , 无需授权
getuserinfo 需要获取用户权限 , 是属于 button 标签的开放功能
登录流程 : wx.login 获取code ===》 使用 code 发起请求获取信息 .....
6.关于滑动条思路 :
可移动总长度 = 获取movable-area 总长度 - movable-view 在滑动条上的长度
左侧已移动的距离 : 使用 movable-view 上的 bindchange 事件即可以获取 x 距离左侧滑动的距离;
可移动总长度设置的总数据 :即滚动条上的数值范围 , 由自己设置
左侧已移动的距离 / 可移动总长度 = 当前获取的数据 / 可移动总长度设置的总数据
7. 使用微信小程序 component 里的 slot 时,当只用一个 slot 并且将 slot 命名后,页面中调用这个 slot 并不会加载进来。去掉slot中name
或者开启多slot支持
研究尝试后发现,如果想要使用命名的方式调用单个 slot ,也需要像调用多个 slot 的方式 在 component/xxx.js 里开启多个 slot 的功能。
8 .mask 有滚动条 遮盖全屏
本用position:absolute;页面滚动遮罩层不会覆盖下方内容,换成position:fixed;就可以解决问题了。
.mask {
position: fixed;
z-index: 99;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 100%;
height: 100%;
overflow: auto;
backdrop-filter: blur(10px);
opacity: 0.4;
background: #000;
}
9. 生成海报 , 画布使用
wx.getImageInfo({ src: userInfo.avatarUrl, success: res => { this.setData({ // 游戏性别 paintPallette: new HappyShare( res.path, userInfo.nickName ).palette(), });
当paintPallette改变 , 即***完成之后
10 小程序组件中设置data中的值,响应式,注意在attached生命周期中设置有效
11 小程序冒泡事件 catch 和bind 的区别
12 组件中可设置组件生命周期(lifetimes) 与 组件所在页面的钩子函数(pageLifetimes)
13 hidden 与 wx:if 的区别使用
14 scroll-view 滚动到底部的触底功能函数 一般添加 防抖操作(一般用于监听滚动 ,页面间距变化等)
15 注意 小程序 的 下拉刷新功能 与 scroll-view 存在的冲突关系 , 可能让下拉失效
16 button 按钮设置样式 - 存在背景色 与 内边距
17 小程序字体设置 ttf 文件 转为 **base64 ** 在app.wxss 中添加该字体 @font-face
18 小程序使用图片一般用线上 ,因为放置本地代码包上线2M,可将其图片压缩;
另: css样式中背景图片无法使用本地图片,可使用外链,或将其转为 base64 使用
另 : 小程序使用云开发 --- 云存储 可放置本地图片 , 使用cdn链接地址
19 小程序图片预览功能 可以长按识别 小程序码
20 使用小程序 公众号引导 某某组件
21 web-view 使用