前端函数式演进
上QQ阅读APP看书,第一时间看更新

1.8.3 声明式编程示例

前端开发中有一项被Web编程各端充分支持的技术,即数据交互格式JSON。JSON简化了XML等传统交互格式的大部分能力,并兼容各主流语言。

前端开发中通常使用JSON格式(对象字面量)表示数据。在前端项目中,自带的Demo演示数据,以及预留的用户配置方案数据,也多采用这一形式来表述。对于开发者而言,直接使用配置项即可驱动游戏引擎,这种做法是声明式编程模式的一种应用实例。

对于用户配置方案和配置型代码的介绍,可以参考代码清单1-8加深理解。

代码清单1-8 用户配置方案——配置型代码


// 用户使用游戏引擎的配置方案demo1速算2位数乘法
// demo/projectA/config.js
export const feedbackQAs = [
  {
    q: '玩法?',
    a: '每一关选择填写正确的答案, 选中后点击提交'
  },
  {
    q: '结果?',
    a: '每一关左滑或点击向左按钮,可查看总览页面,查看自己的得分和历史关卡内容'
  },
]

// 其他选项: 'selector'
export const puzzleType = [
  'fillblank'
]

export const funcs = [
  'feedback',
  'overview',
  'upload',
  'countdown'
]

// demo/projectB/puzzle.js
export const puzzles = [
  {
    qs: ['17 x 17'],
    count: 3,
    a: '289'
  },
  {
    qs: ['22 x 22'],
    count: 3,
    a: '484'
  },
  {
    qs: ['83 x 11'],
    count: 3,
    a: '913'
  },
  {
    qs: ['44 x 44'],
    count: 4,
    a: '1936'
  },
  //省略一些关卡数据
]