【问题标题】:Embed SVG Markup inside vue-component, using Raw-Loader使用 Raw-Loader 在 vue-component 中嵌入 SVG 标记
【发布时间】:2017-12-17 09:17:27
【问题描述】:

我正在使用 webpack Raw-loader 导入 SVG。这意味着我想将实际的 SVG XML 嵌入到我的标记中。

我正在尝试执行以下操作:

<template>
  <div>
    {{svgLoader}}
  </div>
</template>

<script>
import svgLoader from '../assets/loader.svg'
export default {
  data: function () {
    return {
      svgLoader
    }
  }
}
</script>

但是,我将整个 SVG XML 作为纯字符串获取,它不会转换为实际图像。

【问题讨论】:

    标签: javascript svg webpack vue.js


    【解决方案1】:

    SVG 不会加载,因为它会在您使用的模式下转义,​​因为它可能是一个漏洞。要让它渲染,请使用 v-html 指令,该指令将注入 RAW 代码以使其工作。

    这应该绝不用于用户生成的内容,只能用于您信任的内容。

    <template>
      <div v-html="svgLoader"></div>
    </template>
    
    <script>
    import svgLoader from '../assets/loader.svg'
    export default {
      data: function () {
        return {
          svgLoader
        }
      }
    }
    </script>
    

    【讨论】:

    • 如果我想在模板中包含内联 svg 而不是导入一些东西怎么办?喜欢通过 MDN 获得的这些示例之一吗? codepen.io/akinhwan/pen/RQGyYW
    • 在 Vue 2.0 中,您可以编写一个渲染函数来生成内联 svg。
    猜你喜欢
    • 2021-05-23
    • 2023-01-20
    • 2020-05-29
    • 2020-03-27
    • 2020-08-09
    • 1970-01-01
    • 2020-03-25
    • 2023-04-09
    • 2020-01-03
    相关资源
    最近更新 更多