为了防止滥用,微信后来决定调整这个交互,改变了授权登陆流程。于是就发布了一个公告,很突然的,就是直接调wx.getUserInfo不再弹窗询问用户是否授权。而是需要使用原生button组件,用户实际操作点击了屏幕才能触发。
看上去问题不大,其实已经原地爆炸。现在如果和业务结合起来就会有很多赘余代码:
) {
}
}
clickB (e) {
// 接着写B的业务逻辑
}
}
}
}
</script>
<style lang="less">
.auth-btn {
// 使其cover在父容器上并透明
}
</style>
复制代码
之前接手过一个遗留项目,里面密密麻麻充斥着这种代码,我看5分钟吐了3次 。DRY!DRY!DRY!有代码洁癖加重度强迫症的我完全不能忍。
归途:sunglasses:
作为一个有追求的追风少年,思虑良久,得想个辙 ,不然之后的开发生涯就充斥着难受。wepy是一个组件化的小程序框架,可以像写vue组件一样去写小程序的自定义组件。于是就有了一个很自然的想法。把登陆按钮封装起来,使其足够方便。
最后的最后,组件化后的代码长这样:rocket::
<LoginButton1 @tap.user=LoginButton1>
需要登陆操作A
</LoginButton2 @tap.user=LoginButton2>
需要登陆操作B
</script>
import LoginButton from '@/components/LoginButton'
{
components = {
LoginButton1: LoginButton,LoginButton2: LoginButton,}
methods = {
clickA () {
// 直接写A的业务逻辑
}
clickB () {
// 直接写B的业务逻辑
}
}
</script>
复制代码
{ LoginButton1: LoginButton,LoginButton2: LoginButton }
?这个诡异的写法主要是因为wepy的组件是静态组件(其实就是编译时代码复制),导致每实例化一个都要分配一个id:neutral_face:。据说wepy即将发布2.0版本,会解决这个问题,甚是期待。
这可能不是最优方案,但确实方便了许多。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!