假设有页面X A页面可以跳转到X,形式为:B?a=1&b=2&c=xxx&d=true
bad case:
- 直接从 this.route.params 中取参数
- 在 template 中直接写:route.query.d === 'true'
good case
- 将 query 封装为 QueryModel 1.1 data.queryModel = new QueryModel(route.query 的 Boolean String 转换为 Boolean 1.3 外界可传参数,定义在QueryModel 中,并添加注释、列举枚举值 1.3 比如(?a=1, 需要说明a的含义、可用枚举值,方便其他人维护)
- template 中写:queryModel.xxx === CONST.A_1
- 将 params 封装为 Params Model
- 页面的template中,禁止直接出现:$route.query.xx这种形式
可能收益:
- 将对外提供的a、b、xx等参数也行在 Query Model 中,方便扩展和维护
- Query Model 本身就是文档
- 比如?a=true 是字符串其实,在Query Model 里面可以做转换,将a转换为boolean类型,用起来也舒服点