javascript - 使用 Vue.js 在 <svg> 元素中渲染 svg 内容

标签 javascript vue.js svg

我有一个 Vue.js 组件,它动态构建 svg 元素的内容。为了简单起见,假设内容是 <circle cx="50" cy="50" r="60" />

该组件通过操作名为 svg 的数据变量来实现此目的:

  data() {
    return {
      svg: '<circle cx="50" cy="50" r="60" />',
      foobar: 'foobar',
    };
  },

我在父组件中有一些特定的 svg 元素自定义(即宽度、高度、viewBox)。如何在模板中以“原始”形式呈现此内容?

<template>
<svg v-html="svg"></svg>
</template>

将添加我不想要的 svg 元素

最佳答案

最简单的方法是输入 v-html在标准 SVG 上 <g> (组)元素:

<template>
  <g v-html="svg"></g>
</template>

这不会呈现 html 的“原始”形式,而是呈现 <g>元素应该不是问题

关于javascript - 使用 Vue.js 在 <svg> 元素中渲染 svg 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59184473/

相关文章:

javascript - 下拉文本输入选项

javascript - 为什么我用 jQuery 添加类后点击不起作用?

javascript - 如何在 vue.js 中复制我的组件?

svg - 传单-多色图案填充

javascript - Safari 中奇怪的 svg/path 动画行为

javascript - 如果 api 服务器已关闭,提醒用户服务器当前不可用的客户端的最佳做法是什么?

javascript - 在创建的函数中访问 axios 响应数据 - Vue2

javascript - Vue.js 2 : Computed array iteration

css - 对齐 SVG 元素以垂直和水平居中显示

javascript - 在 ReactJS 中使用迭代时如何将 onClick 事件传递给父组件?