小程序
小游戏
企业微信
微信支付
扫描小程序码分享
原因: 在 Page 的控制逻辑中,非常需要知道当前的 Page 属于哪个路径,以便于代码复用。
现在的办法是,使用隐形的 this.__router__
但这总不是个办法吧。
建议在 Page 的 this 作用域中把 __router__ 显性暴露出来
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
// pages/login/login.js
const route = pages/login/login.js
Page({
// you code here
onShow: () => {
console.log(route)
}
})
你自己的代码是可以知道当前是哪个route的呀
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
很赞
更新的1.2.0版本已经可以使用 page 的 route 字段获取当前页面的路径了
__router__ 这个私有变量在可预见的未来都是不会删除的,可以正常使用
不过使用没有暴露在文档中的变量确实不好,我们会考虑直接直接暴露出 router 变量,并且在文档中标明
我们现在就是用您的这个方法做的,但是 这样很低效。
目前这样做的原因是担心 __router__ 这个隐形属性不可依赖。
因为有30多个form page,我们需要实现的是保存(save) 并恢复(restore) 用户在 form page 上的输入。
那么 page router 是一个非常合适的 storage key。
再往深里看
这些 form pages 的 save / restore / input validation 都是大量重复的逻辑。因此一个更合理的模型是使用助手方法抽取掉大量重复的逻辑。 而 Page 的 onHide / onShow / onLoad / onUnload 正好完美的把助手方法生产的方法实例绑定到当前的 page 作用域上。
因此 我觉得 让 Page 能够在自己的作用域下自我识别是有很大好处的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
// pages/login/login.js
const route = pages/login/login.js
Page({
// you code here
onShow: () => {
console.log(route)
}
})
你自己的代码是可以知道当前是哪个route的呀
很赞
更新的1.2.0版本已经可以使用 page 的 route 字段获取当前页面的路径了
__router__ 这个私有变量在可预见的未来都是不会删除的,可以正常使用
不过使用没有暴露在文档中的变量确实不好,我们会考虑直接直接暴露出 router 变量,并且在文档中标明
我们现在就是用您的这个方法做的,但是 这样很低效。
目前这样做的原因是担心 __router__ 这个隐形属性不可依赖。
因为有30多个form page,我们需要实现的是保存(save) 并恢复(restore) 用户在 form page 上的输入。
那么 page router 是一个非常合适的 storage key。
再往深里看
这些 form pages 的 save / restore / input validation 都是大量重复的逻辑。因此一个更合理的模型是使用助手方法抽取掉大量重复的逻辑。 而 Page 的 onHide / onShow / onLoad / onUnload 正好完美的把助手方法生产的方法实例绑定到当前的 page 作用域上。
因此 我觉得 让 Page 能够在自己的作用域下自我识别是有很大好处的。