一、触摸穿透 问题
弹出蒙层,但是上下滚动的时候,下一层会滚动
解决方案:
(1)弹出蒙层的时候,设置下一层position:fixed固定住,缺点:可能影响下层的样式。
(2)在不想触摸穿透的组件加上 @touchmove.stop="",在开发者工具没效果,但是在真机有效果,推荐使用这个方案。
二、阿拉丁 数据统计分析
三、扫码进入微信小程序有三种码:
(1)把链接通过草料等工具生成的普通链接二维码,入参是q
(2)通过微信小程序官网提供的后台接口获取二维码
a、小程序码(wxacode.createQRCode、wxacode.get)
b、小程序二维码(wxacode.getUnlimited),前端页面入参scene
const getFormatedOptions = (options) => { // 处理普通路径的query、普通二维码解析出来的路径(q)、小程序二维码(scene) const { scene, q, ...query } = options let formatedOptions = query if (q) { const url = decodeURIComponent(q) const _query = queryToObject(url) formatedOptions = _query } if(scene) { const url = decodeURIComponent(scene) const _query = queryToObject(url) formatedOptions = _query } console.log('=== getFormatedOptions ===', formatedOptions) return formatedOptions }
/**
* @function url上的 ?query 转换为 object
* @param {String} url
* */
function queryToObject(url) { const result = {} const arr = url.split(/[?&]/ig) arr.forEach(item => { if (!item || !/=/g.test(item)) return // 断言 const keyValArr = item.split('=') if (keyValArr.length != 2) return // 断言 result[keyValArr[0]] = keyValArr[1] }) return result
}
四、uni-app/mpvue/原生 onLoad和onShow
1、uni-app:子组件component(即非pages/index),没有onLoad和onShow生命周期,created和mounted也只有页面onLoad/reOnLoad的时候才执行
2、mpvue:子组件的onLoad函数在页面首次加载的时候执行,onShow不执行,页面第二次进入时(回退)子组件执行onShow。页面首次加载的时候子组件的created和mounted钩子执行,页面回退的时候created和mounted钩子不执行。
3、原生:去看组件文档(page和子组件有各自的生命周期钩子)
结论:使用框架开发小程序,不要在子组件里面使用page生命周期,统一在page/index的onShow和onLoad生命钩子里通过ref触发子组件该在onShow和onLoad时候触发的函数
五、缓存问题
并非全量发布之后,用户就会立即使用到最新版的小程序,这是因为微信客户端存有旧版本小程序包缓存。用户在使用小程序时会优先打开本地的小程序包,微信客户端在某些特定的时机异步去更新最新的小程序包。一般我们认为全量发布的24小时后,所有用户才会真正使用到最新版的小程序。
六、服务器域名和业务域名
服务器域名是 wx.request 请求 去拉取数据的域名。 一般返回为JSON字符串
业务域名是小程序的webview组件要引入的其他H5地址的URL的域名或者网页里面的iframe的域名
转载于:https://www.cnblogs.com/fuckingPangzi/p/10462441.html
七、web-view还是iframe
1、不管是web-view还是iframe,都需要配置业务域名(域名白名单)才能正常访问
2、个人类型的小程序暂不支持使用web-view
七、线上sourceMap的用法:
https://www.jianshu.com/p/3880530b2fcd
八、文字底部对齐
九、组件显示不出来的问题