赞
踩
- // 触发一次
- onLaunch() {
- console.log('小程序开启启动,初始化完成')
- },
- // 小程序显示,多次触发
- onShow() {
- console.lg('小程序显示了')
- },
- onHide() {
- console.log('小程序隐藏了')
- },
- onError() {
- console.log('小程序出现异常')
- },
- // 1. onLoad 页面开始加载 发送请求获取数据,获取到导航参数
- // 2. onShow 页面显示 (多次触发) 提示信息
- // 3. onReady 页面初次渲染完成
- // 4. onHide 页面隐藏 tabbar页面切换只是隐藏
- // 5. onUnload 页面销毁 不是tabbar页面 b页面 返回 A页面对应的页面销毁 // 清理操作
生命周期 | 参数 | 描述 | 最低版本 |
created | 无 | 在组件实例刚刚被创建时执行(拿到数据) | |
attached | 无 | 在组件实例进入页面节点树时执行 | |
ready | 无 | 在组件在视图层布局完成后执行 | |
moved | 无 | 在组件实例被移动到节点树另一个位置时执行 | |
detached | 无 | 在组件实例被从页面节点树移除时执行 | |
error | Object Error | 每当组件方法抛出错误时执行 |
全局组件
局部组件
<local-swiper list="{{swipers}}"></local-swiper>
- properties: {
- list: {
- type: Array,
- required: true
- }
- },
this.triggerEvent('自定义事件名', 传递的数据)
<local-swiper bind:onImage="getImage" list="{{swipers}}"></local-swiper>
- getImage(e) {
- console.log(e.detail)
- },
this.selectComponent('组件对应的选择器')
wxs weixin script: 在模板中无法调用js中定义的函数,可以调用wxs定义的函数,一般用wxs进行数据处理
缺点:
优点:
1.1 获取用户信息(iv, rawData, encrytedData,signature)
- const userInfo = await uni.getUserProfile({
- desc: '获取您的用户信息'
- })
- const {
- iv,
- rawData,
- encrytedData,
- signature
- } = userInfo[1]
1.2 调用uni-app的login方法获取code(用户凭证)
- const {
- code
- } = await uni.login()
- const res = await login({
- iv,
- rawData,
- encryptedData,
- signature,
- code
- })
- async createOrder() {
- // 要购买的商品
- const payGoods = this.$store.state.cart.list.filter(item => item.goods_state)
- // 通过map进行格式化
- const goods = payGoods.map(item => {
- return {
- goods_id: item.goods_id,
- goods_number: item.goods_count,
- goods_price: item.goods_price
- }
- })
- // 调起创建订单的接口
- const {
- message: {
- order_number
- }
- } = await createOrder({
- order_price: this.totalPrice,
- consignee_addr: this.$store.getters['user/addressStr'],
- goods: goods
- })
- // 获取到订单id
- this.payGoods(order_number)
- },
- async payGoods(order_number) {
- // 获取支付参数
- const {
- message: {
- pay
- }
- } = await getPayParams({
- order_number
- })
- //
- },
- // 发起微信支付
- const [err, res] = await uni.requestPayment(pay)
- if (err) {
- uni.showToast('取消支付,跳转订单页面')
- } else {
- uni.showToast('支付成功,跳转订单页面')
- }
- uni.reLaunch({
- url: '/pages/my/my?url=123'
- })
小程序的页面栈最多10层,之前是5层,所以一旦超过10层,跳转则无反应
合理使用navigateTo、navigateBack、redirectTo、reLaunch
方式一:可以通过获取页面栈信息getCurrentPages,以及即将跳转的页面是否在页面栈中,如果有直接利用navigatorBack进行返回
方式二:可以通过获取页面栈信息getCurrentPages,是否超出限制,如果超出限制利用redirectTo进行跳转或者wx.reLaunch进行跳转
方式三:因为redirectTo/reLaunch跳转,会销毁当前页面栈进入另一个页面,a、b、c,b通过redirectTo到c,再返回会进入a,这个问题解决,可以维护自己的页面栈列表,进行进栈,弹栈维护,从自己维护的列表中取对应的页面,对应的往后退。
小程序有内置的下载文件api, wx.downloadFile进行文件下载,单次下载允许的最大文件为 200MB
- "subpackages": [
- {
- "root": "/goods",
- "pages": [
- "goods-detail/goods-detail",
- "goods-list/goods-list"
- ]
- }
- ]
项目根目录
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。