使用VueJS将SVG导入目录作为数组

时间:2018-04-19 09:57:48

标签: webpack vue.js ecmascript-6 vuejs2

我想导入一个充满SVG资源的目录,并在VueJS组件中引用它们作为数组。如下所示:

//LevelComponent.vue

<template>
  <div v-html="image"></div>
</template>

<script>
import * as levels from '@/assets/levels/*.svg'

export default {
  name: "Level",
  data() {
    return {
      image: ''
    }
  },
  methods: {
    setLevel(levelNumber) {
      this.level = levels[levelNumber];
    }
  }
}
</script>

由于VueJS / Webpack如何处理资产路径,上述内容显然不起作用:

Module not found: Error: Can't resolve '@/assets/levels/*.svg'

我们目前单独加载SVG,但每次目录内容发生变化时,我们的代码都需要更新:

import level1 from '@/assets/levels/1.svg'
import level2 from '@/assets/levels/2.svg'
import level3 from '@/assets/levels/3.svg'

除了上述错误,我很确定我会以错误的方式解决这个问题。采用这种方法的正确方法是什么?我应该提一下,我们目前在Webpack中使用svg-inline-loader来加载各个SVG。

0 个答案:

没有答案