页面跳转:参数的维护-QueryModel

54 阅读1分钟

假设有页面X A页面可以跳转到X,形式为:B?a=1&b=2&c=xxx&d=true

bad case:

  1. 直接从 this.route.query或者从this.route.query 或者从 this.route.params 中取参数
  2. 在 template 中直接写:route.query.a===1或者route.query.a ===1 或者 route.query.d === 'true'

good case

  1. 将 query 封装为 QueryModel 1.1 data.queryModel = new QueryModel(route.query)1.2QueryModel中将route.query) 1.2 在 QueryModel 中将 route.query 的 Boolean String 转换为 Boolean 1.3 外界可传参数,定义在QueryModel 中,并添加注释、列举枚举值 1.3 比如(?a=1, 需要说明a的含义、可用枚举值,方便其他人维护)
  2. template 中写:queryModel.xxx === CONST.A_1
  3. 将 params 封装为 Params Model
  4. 页面的template中,禁止直接出现:$route.query.xx这种形式

可能收益:

  1. 将对外提供的a、b、xx等参数也行在 Query Model 中,方便扩展和维护
  2. Query Model 本身就是文档
  3. 比如?a=true 是字符串其实,在Query Model 里面可以做转换,将a转换为boolean类型,用起来也舒服点