美文网首页
uniapp之实战踩坑笔记

uniapp之实战踩坑笔记

作者: 锋叔 | 来源:发表于2022-03-11 16:28 被阅读0次

uniapp坑之多可谓是漫天星辰,但既然踏上了这条贼船,你也只能是披荆斩棘一往无前。自小白接触此框架以来,踩过了无数坑,就在此进行一个记录,给后来者一些警示及经验。

后续会持续更新,因为坑无穷尽也。

tabbar没有双击事件咋办

  • 双击刷新是现在很多平台搞出来的客户体验优化方案。但是uniapp没有钩子
    解决方案:模拟双击
// tabbar菜单点击事件
onTabItemTap(e) {
    // tab 点击时执行,此处直接接收单击事件
    if (this.tabClick) { // 200ms 内再次点击
        // 这里就是模拟的双击事件,可以写类似数据刷新相关处理
    }
    this.tabClick = true
    setTimeout(() => {
        this.tabClick = false // 200ms 内没有第二次点击,就当作单击
    }, 200)
},

上拉加载多次触发

  • 当你上拉加载了很多后回到头部想要复原一下,比如下拉刷新回到原始数据。就会遇到这样的问题。原因是因为上拉加载钩子根据滚动距离来触发的,它会以为你滚动了很多次,要不然咋个在那个底下呢。
    最简单方案就是用uni.pageScrollTo({scrollTop:0});,回滚到头部后再做数据刷新。

小程序和苹果手机对v-show的不支持,要么不显示要么一直显示

  • 无解,因为这是官方的bug,不知道那天能修复。
    最简单方案就是用v-if替代v-show,偶尔一些需要预先绑定事件的插件用到v-if就会报错。
    傻方案就是:style="条件 ? ' ': 'display: none;' "

Vue2才支持的$on $off $emit $once

初见以为是女神,真整起来发现不过如此
无非是封装了一个漏洞百出的全局钩子!!!说是可以组件数据通讯,其实一堆儿坑。
当你使用非除开原生返回路由和navigateTo以外当钩子时,都会无效!!也许是我太菜,大神们不知道有没有解决redirectTo跳转后无效的办法。
Vue3移除了!可能有了更好的替代方案。

使用

father.vue

<template>
    <view class="card-container">
        <view class="card-form">
            <u-form :model="dataForm" label-position="left" ref="dataForm" label-width="130rpx"
                :label-style="{'fontSize': '14px'}" :error-type="errorType">
                <u-form-item label="姓名" prop="name">
                    <u-input v-model="dataForm.name" maxlength="30" placeholder="请输入姓名" />
                </u-form-item>
                <u-form-item label="手机号" prop="phone">
                    <u-input v-model="dataForm.phone" maxlength="11" placeholder="请输入手机号" />
                </u-form-item>
            </u-form>
        </view>
        <view class="card-container-footer">
            <button @click="submit" class="footer-btn" type="default">提交</button>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                dataForm: {
                    name: null,
                    phone: null
                },
            }
        },
        onUnload() {
            // 移除监听事件  
            uni.$off('setAddress');
        },
        onLoad() {
            uni.$on('setAddress', this.setAddress); // 绑定事件
        },
        methods: {
            async setAddress(dataForm) {
                this.dataForm = dataForm
            },
            // 提交修改或者保存
            async submit() {
            // 跳转去子路由
            }
        }
    }
</script>

child.vue

<template>
    <view class="card-container">
        <view class="card-container-footer">
            <button @click="setAddress" class="footer-btn" type="default">给父组件传值</button>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
            }
        },
        methods: {
            // 提交修改或者保存
            async setAddress() {
                let address = {
                    address: "测试双向绑定",
                    addressId: 12,
                    area: "测试双向绑定",
                    default: 1,
                    name: "zdf",
                    phone: "13412311233",
                }
                uni.$emit('setAddress', address);
                uni.navigateBack({
                    delta: 1
                });
                
            }
        }
    }
</script>

相关文章

  • uniapp之实战踩坑笔记

    uniapp坑之多可谓是漫天星辰,但既然踏上了这条贼船,你也只能是披荆斩棘一往无前。自小白接触此框架以来,踩过了无...

  • uniapp踩坑笔记

    前进,前进。 使用cli 会提示模版选择框(不同模版适配程度不同,hello uni-app可以直接运行,有的则不...

  • ThreadLocal实战之踩坑笔记

    简要聊聊ThreadLocal ThreadLocal提供线程内部的局部变量,我们可以将项目中的一些变量直接存放在...

  • Android插件化热修复

    项目实战之插件化VirtualAPK 使用滴滴插件化方案 VirtualApk 源码解析VirtualAPK 踩坑...

  • uniapp 踩坑记录

    uni.makePhoneCall打包后不生效的问题 需要勾选权限android.permission.CALL_...

  • uniapp踩坑记

    首先我是用cli创建的项目 1.项目配置px转rpx 安装postcss-pxtorpx-pro vite.con...

  • uniapp开发踩坑

    自定义组件v-model不可以自定义model,只能使用默认的value/input,否则小程序无效 原本我使用的...

  • 2022-09-27- uniapp-app 开发踩坑总结

    uniapp-app 开发踩坑总结1、 iOS 设置宽 100% 和 paddding:20rpx 会出现下侧滚动...

  • uniapp image app端不显示

    踩坑历程 事情是这个样子的~ uniapp 中的 image 组件中,mode 属性的默认值是 scaleToFi...

  • uniapp 启动图踩坑

    目前公司有个需求 需要在app启动时展示两张图片,在通过baidu了解后,通过增加页面得方式并关闭默认uniapp...

网友评论

      本文标题:uniapp之实战踩坑笔记

      本文链接:https://www.haomeiwen.com/subject/xugdxrtx.html