• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序如何将6个独立页面包装成一个第三方自定义组件npm包 - dawnxuuu ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

微信小程序如何将6个独立页面包装成一个第三方自定义组件npm包

公司内的微信小程序注册登录流程长,包含授权获取手机号、绑定已有账号、完善个人信息新建账号、完善公司信息、个人认证、企业认证、认证结果列表、用户服务协议等内容页。完成这些流程后才可接入账号系统的所有服务。因此需要研发一个注册登录组件,且以NPM包的形式提供给不同的B端微信小程序使用。

项目github地址

组件原理

引入main组件的原因

main组件与页面子组件可利用组件间关系releations,实现父子组件数据交互。
否则的话,每个子组件都需要定义一堆属性以及触发一系列事件来实现与index父组件数据交互。
而使用了组件间关系,只需要在组件加载时linked钩子上,将目标组件的实例挂载到当前组件上,即可轻松调用目标组件实例上全部数据和方法。
main组件仅需要通过有限的几个属性和方法即可将主要数据传递给父组件index。父组件index将主要数据传递给业务调用方即可。

// index.wxml 中

<main>
<bindAccount></bindAccount>
<createAccount></createAccount>
</main>

全局唯一登录态

多个页面引用组件时,只要有一个页面登录成功了,会在app实例中设置全局属性 app.loggedIn = true,此时其他页面的登录行为便不不再进行。

全局状态

存储在本地缓存中的,字段均以 login_开头,有如下:

login_at
login_rt
login_deviceId
login_fromUserCenterUnbind
login_personal_info

存储在main组件中的值有如下:

data.url.passport 等,存储不同环境的接口地址
data.globalState.at
data.globalState.rt
data.globalState.deviceId

存储在app实例对象上的有

app.loggedIn 是否已登录 Boolean
app.certificate 认证相关

npm组件使用方法

引入组件

小程序工程中,package.json 文件中引入组件

{
"dependencies": {
"【npm包名】wxmp-login-register": "1.2.19"
}
}

页面内容需作为slot放在登录组件标签内

<component-wx-login env="local" bind:loginSuccess="loginSuccess">
<view>页面内容</view>
<view>页面内容</view>
</component-wx-login>

属性与方法

env

  • local 本地开发环境
  • pre 预上线环境
  • production 生产环境。默认。

用以配置不同环境的接口地址。

这里需要重复设置一下页面标题,没办法

bind:loginSuccess

登录成功回调函数

bind:loginFail

登录失败回调函数

logoutEmitter

解绑退出触发器。默认必须是false,当设置为true时会触发解绑退出方法,在解绑退出成功回调中,需要将此属性重置为false,以便下次解绑退出时设置为true才生效。

bind:logoutSuccess

解绑退出成功的回调函数

bind:logoutFail

解绑退出成功的失败函数
用户必须添加此回调,此回调函数中必须将 logoutEmitter 重置为false

可通过 selectComponent() 直接调用的组件方法

showCertificateList

显示认证列表页

executeLogin

执行登录逻辑


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
小程序节流函数(防止按钮重复点击)发布时间:2022-07-18
下一篇:
微信点餐小程序分析与开发发布时间:2022-07-18
热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap