1、微信小程序的场景值:作用是得知是以什么方式进入小程序的,比如小微信搜索,好朋友分享,手机长按识别二维码进入...,
通过app中的onLaunch 或onShow方法中可以获取到场景值,从而进行相应的处理
onLaunch: function (options) {
console.log("[onLaunch] 场景值:", options.scene)
},
onShow: function (options) {
console.log("[onShow] 场景值:", options.scene)
}
2.微信尺寸单位:rpx 以iphobe6为基 1rpx=0.5px
3.鼠标点击事件bindtap 简写bind:tap ;视图层可自定义属性,如data-自定义属性,如何获得:bind:tap=“hander”
回调函数hander(event),接收一个对象,对象event.target.dataset对象中包含了自定义属性;
自定义属性只能是小写,大写部分会自动准换为小写,除非连字符写法会转换成驼峰写法,这样大写保持不变;
mark与dataset功能差不多,但是mark会将冒泡中所有的mark属性全部返回回调函数中去
4、catchtap 阻止事件冒泡;所有的mut-bind 互斥的,只会发生一个mut-bind,但完全不影响 bind 和 catch 的绑定效果
5、微信中wxs,意为weixin script ,在里面写方法或变量,通过module.export导出,在其它文件导入是使用相对路径
<wxs src="../../utils/utils.wxs" module="utils"></wxs>
<text>{{utils.formatNumber(fanNum)}}</text>
6、简述微信小程序原理
微信小程序采用 JavaScript、WXML、WXSS 三种技术进行开发,本质就是一个单页面应用,
所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口微信的架构,
是数据驱动的架构模式,它的 UI 和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现
小程序分为两个部分 webview 和 appService 。
其中 webview 主要用来展现 UI ,appService 有来处理业务逻辑、数据及接口调用。
它们在两个进程中运行,通过系统层 JSBridge 实现通信,实现 UI 的渲染、事件的处理
7、组件中wxss不要使用id选择器,子代选择器,标签选择器,推荐使用类选择器
8、app.js中声明globalData对象存储全局变量,在app.js中使用this.globalData取值
而在其他文件中需要调用getApp(),得到app的变量与方法
9、微信小程序页面onLoad获取app.js的onLaunch数据(异步获取用户信息),因onLaunch请求异步,程序跑到页面中onLoad获取app数据可能为空
解决方案地址:https://blog.csdn.net/Simoral/article/details/103649522
10、微信自动更新提示:
autoUpdate: function () {
var self = this
// 获取小程序更新机制兼容
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
//1. 检查小程序是否有新版本发布
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log(res.hasUpdate + '===========res.hasUpdate')
if (res.hasUpdate) {
//2. 小程序有新版本,则静默下载新版本,做好更新准备
updateManager.onUpdateReady(function () {
updateManager.applyUpdate(); //静默强制更新
})
updateManager.onUpdateFailed(function () {
// 新的版本下载失败
wx.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
})
})
}
})
} else {
// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
})
}
},
11、 微信小程序app.json分包:subpackages对象
为了不限制开发包大小
整个小程序所有分包大小不超过 8M
单个分包/主包大小不能超过 2M
程序主包必须要默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本
分包看开发自己的配置,但各个分包中不能涉及其他分包的资源引用
12、微信小程序中:wxs与js 的不同
wxs和js都是进行逻辑处理,但是wxs中引入只能引入.wxs文件,而且不存在箭头函数,let,const,new变量用var声明,存在独立性
.js文件支持es6语法;负责更复杂的方法与功能
个人感觉wxs用来做纯数据逻辑控制,只是提交标签解析速度;wxs不涉及app.js的方法或微信api
13、父组件拿到子组件实例,现在子组件中加上id ,然后通过this.selectComponent("#tip")然后再调用子组件的方法
14、微信小程序中应用生命周期,页面生命周期,子组件生命周期,地址:https://blog.csdn.net/weixin_34640046/article/details/112221971
15、setData()中有回调函数
this.setData({
orderDetail: orderDTO,
goingBtnDesc: goingBtnDesc,
countTime: countTime,
limitAmount: util.isEmpty(orderDTO.limitAmount) ? '0.00' : orderDTO.limitAmount
}, () => {
wx.hideLoading();
if (countTime) {
this.timeCounter();
}
});