@NiceScript

Как сделать авто import во Vue?

Продолжаю разбираться во Vue.js,
Идёт запрос на сервер => сервер вытягивает нужные данные и какие компоненты должны использоваться (componentName: 'componentPath'):
used_components: 
{
   first: '@/components/first',
   second: '@/components/second'
},
......

Сейчас я просто подгружаю компоненты вручную
.....
name: 'Page',
    components: {
      first: () => import('@/components/first'),
      second: () => import('@/components/second')
    },
    data () {
      return {
        server_array: '',
        server_components: ''
      }
    },....


Как сделать импорт необходимых компонентов исходя из ответа сервера?
что-то вроде
name: 'Page',
    components:  server_components, // из даты берём (или как-то подругому)
    data () {
      return {
        server_array: '',
        server_components: '' //переопределим через methods
      }
    },
beforeMount () {
      this.getPage()
    },
methods: {
      async getPage () {
        const response = await Page.getPage()
        this.server_components = response.data.used_components
        this.setComponents(this.server_components)
      },
      setComponents (data) {
        for (var key in data) {
          () => import(data[key])
        }
      }
    }
....
  • Вопрос задан
  • 565 просмотров
Пригласить эксперта
Ответы на вопрос 1
@levchak0910
answer.correct ? press({correct: true}) : next()
data: {
    componentName: ""
}
async getPage () {
    const response = await Page.getPage()
    this.componentName = ...
}

<component :is="componentName"></component>
https://vuejs.org/v2/api/#component
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы