Как хранить и использовать статические данные в Vue.js? - PullRequest
1 голос
/ 23 сентября 2019

Представьте, что вы написали довольно абстрактный компонент таблицы, предназначенный для использования на страницах индекса ресурса (например, /users, /posts ...).

Компонент имеет только два основных свойства - resourceName и массив resources для отображения.Чтобы правильно отобразить таблицу, вы создали некую структуру данных конфигурации, которая привязана к определенному типу ресурса - идентифицируется resourceName.Каждый тип ресурса связан с массивом объектов, которые представляют различные столбцы таблицы, какие свойства они отображают и, возможно, компоненты, которые будут использоваться для отображения значения, и какие свойства используются для предоставления значения компоненту.

{
   users: [{
       property: 'id',
       label: 'ID'
   }, 
   {
       property: 'created_at',
       label: 'Time of registration',
       component: 'datetime-showcase',
       passPropertyAs: 'value'
   }],
   //...
}

Я вижу 3 подхода:

  1. Каталог в корне приложения, где данные находятся в файле js.Компонент таблицы обращается к данным через import tableConfigs from '@/config/tables'.Существует вычисляемое свойство, которое предоставляет данные как
columns() {
 return tableConfigs[this.resourceName];
}
Данные хранятся в центральном модуле Vuex.Вычисленное свойство с получателем, принимающим имя ресурса, используется для получения конфигурации таблицы. Данные хранятся в нескольких модулях vuex - по одному для каждого типа ресурса, а вычисленное свойство используется для получения данных изсостояние соответствующего модуля.

Каким образом (с точки зрения удобства обслуживания и производительности) эти типы данных должны храниться для использования компонентом таблицы?У меня есть похожая ситуация, подходящая для других компонентов - например, та, которая обрабатывает сортировку индекса ресурса, где все, что действительно отличается между различными индексами, - это то, что может быть отсортировано и какие метки использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...