将JSON响应映射到Vue.js中的模型类

时间:2017-08-29 09:15:45

标签: javascript json model vue.js single-page-application

在将JSON API响应映射到" real"时,是否存在Vue.js的最佳实践或事实库? javascript模型对象?来自iOS开发,有很好的库,如JSONModelMagicalRecord,正好处理这个问题。

我能找到的大多数Vue.js教程/示例似乎都适用于普通的JSON响应。恕我直言,这很快就很麻烦。例如,在处理日期字符串等原始数据时,这些数据会更好地作为真正的Date对象。所以它涉及某种(反)序列化功能。此外,您可以使用Foo.findAll()Foo.findById(1)foo.save()之类的内容来创建对后端服务的适当调用。

我发现vue-model看起来很有前景,但它似乎并没有很大的吸引力。这让我想知道,如果将JSON映射到对象并不是很多人在他们的SPA中做的事情吗? 什么是替代方法?

1 个答案:

答案 0 :(得分:2)

这不是一种常见的做法。在基于浏览器的SPA中使用JSON的好处是解析的JSON javascript。您不必将值映射到类型化的类中。

那就是说,我理解你的观点,并且在某些时候我已经构建了一个javascript类,其构造函数接受一个javascript对象作为"初始化程序"。然后在API响应中,您可以映射响应以将原始对象转换为" class"具有方法,日期属性等的实例

我们说我有一个动物javascript类。

class Animal {
  constructor(initializer){
    this.name = initializer.name
    this.born = new Date(initializer.born)
  }

  sayMyName(){
    console.log(this.name)
  }
}

在API响应中,从响应中制作Animal实例非常简单。

getAnimals()
  .then(response => this.animals = response.data.map(a => new Animal(a)))

现在,Vue中的animals数据属性有一个Animal对象的集合。