Vuex ORM实体数据始终为空吗?

时间:2019-05-19 03:25:54

标签: vue.js vuex

我正在努力实现Vuex ORM来规范我的数据。我来自Rails的背景,因此使用ORM似乎对我来说也是一种更轻松地处理深度嵌套数据的方法。我遵循了文档,但是当我检查Vuex Devtools并打开实体数据对象时,它们始终为空。我想念什么?

_store / index.js

import Vue from 'vue';
import Vuex from 'vuex';
import VuexORM from '@vuex-orm/core';
import database from './database';

Vue.use(Vuex);

export const store = new Vuex.Store({
  modules: {
     ... // existing Vuex modules
  },
  plugins: [VuexORM.install(database)],
});

_store / database.js

import { Database } from '@vuex-orm/core';

import User from '~/_models/User';
import TodoItem from '~/_models/TodoItem';

import users from './modules/user';
import todoItems from '~/_store/modules/todoItems';

const database = new Database();

database.register(User, users);
database.register(TodoItem, todoItems);

export default database;

_store / modules /

// user.js and todoItems.js
export default {
  namespaced: true,
};

_models /

// user.js
import { Model } from '@vuex-orm/core'
import TodoItem from './TodoItem';

export default class User extends Model {
  static entity = 'users'

  static fields() {
    return {
      id           : this.increment(),
      email        : this.increment(),
      firstName    : this.string(''),
      lastName     : this.string(''),
      address1     : this.string(''),
      address2     : this.string(''),
      city         : this.string(''),
      state        : this.string(''),
      country      : this.string(''),
      avatar_url   : this.string(''),
      todo_item: this.hasMany(TodoItem, 'user_id'),
    }
  }
};

// TodoItem.js
import { Model } from '@vuex-orm/core'
import User from './User'
import UpcomingHike from './UpcomingHike';

export default class Todo extends Model {
  static entity = 'todos'

  static fields() {
    return {
      id              : this.increment(),
      title           : this.string(''),
      completed       : this.boolean(false),
      user_id         : this.number(0),
      position        : this.number(0),
    }
  }
}

0 个答案:

没有答案