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

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

在将 JSON API 响应映射到“真实”javascript 模型对象时,是否有适用于 Vue.js 的最佳实践或实际库?来自 iOS 开发,有像 JSONModel 这样优秀的库和 MagicalRecord处理这件事。

我能找到的大多数 Vue.js 教程/示例似乎都适用于纯 JSON 响应。恕我直言,这很快就会变得很麻烦。例如,在处理像日期字符串这样的原始数据时,作为真正的 Date 对象会更好。所以它涉及某种(反)序列化功能。另外,如果有 Foo.findAll()Foo.findById(1)foo.save() 这样的东西就好了创建对后端服务的适当调用。

我找到了 vue-model这看起来很有希望,但似乎没有太大的吸引力。这让我想知道,是否将 JSON 映射到对象并不是很多人在他们的 SPA 中做的事情? 有哪些替代方法?

最佳答案

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

就是说,我理解您的意思,并且在某些时候我构建了一个 javascript 类,其构造函数接受一个 javascript 对象作为“初始化程序”。然后在 API 响应中,您只需映射响应即可将原始对象转换为具有方法、日期属性等的“类”实例。

假设我有一个 Animal 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 中的动物数据属性有一个 Animal 对象的集合。

关于javascript - 将 JSON 响应映射到 Vue.js 中的模型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45935138/

相关文章:

javascript - 如何从json中获取数据

javascript - 仅使用异步 XHR 请求解析 JSON 时出错

mysql - 从表中过滤掉过时的项目

javascript - StrongLoop : How to define models in models/directory at loopback. 启动()时间?

javascript - 为什么这个内联 stopPropagation 方法调用不起作用?

javascript - 动态添加 HTML 元素后创建一个 jQuery 事件

javascript - Angular 嵌套过滤器和无限 $digest 循环

Java:JSON 与多播/广播

javascript - AngularJS - 从数据中删除\n

ruby-on-rails - 模型中的 Rspec Ruby on Rails 测试文件系统