美文网首页
小程序自定义组件

小程序自定义组件

作者: 字字经心 | 来源:发表于2022-07-28 17:33 被阅读0次

    小程序中如果一个页面UI太过复杂,亦或者某个UI组件复用次数多,可以考虑抽取出自定组件。抽离组件可以

    1. 分而治之,使代码结构更清晰,也是重构的目的。
    2. 复用,使逻辑出现在唯一出

    自定义组件

    页面中的网络头像有加载过程,可以在加载过程中给图像一个占位图。而这复用率很高,可以考虑抽取组件

    1. 头像图片未加载成功之前显示占位图,利用bindload方法
    <!--profile.wxml-->
    <view class='v-h-center'>
        <image class="{{isFinishLoad ?'':'before-load'}}" src='{{imgSrc}}' bindload='finishLoad' />
            
    </view>
    
    <!--profile.js-->
    finishLoad: function(){
        this.setData({
            isFinishLoad: true
        });
    }
    
    <!--profile.wxss-->
    .before-load {
        width: 64rpx;
        height: 64rpx;
        border-radius: 50%;
        border: 1rpx solid #a7a7a7;
        background-color: #EEE;
    }
    
    1. 点击头象,通知触发父组件事件
    // 引用组件的页面.wxml
    <profile bindXXX='xxx'  imgSrc='{{xxx}}' data-xx="{{xxx}}" />
    
    <!--profile.js-->
    _event: function(e){
        this.triggerEvent('XXX') 
    }
    

    相册授权

    小程序中将图片或者视频,下载后保存到用户本地相册需要用户授权。若用户首次拒绝授权,再次下载时,得再次弹出询问授权按钮,否则图片无法下载。

    1. 保存到相册,首次拒绝授权,第二次保存失败,再次询问 wx.openSetting
    wx.saveVideoToPhotosAlbum({
        filePath: res.tempFilePath,
        success: res => {
            this.showMsg('视频已保存到相册~~');
        },
        fail: res => {
            this.getPhotoAuthorize();
        }
    });
    
    getPhotoAuthorize: function () {
        wx.showModal({
            title: '提示',
            confirmText: '去授权',
            content: '授权后才能保存到相册噢',
            success: res => {
                if (res.confirm) {
                    console.log('用户点击授权')
                    wx.openSetting({
                        success: function (res) {
                            if (!res.authSetting["scope.writePhotosAlbum"]) {
                                console.log('重新授权成功')
                            }
                        }
                    })
                }
            }
        })
    }
    

    欢迎大家给我留言,提建议,指出错误,一起讨论学习技术的感受!

    相关文章

      网友评论

          本文标题:小程序自定义组件

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