1. 首页 > 快讯

vue html渲染(vue显示svg)

相同的 html 代码,采用 v-html 和直接书写存在差异如何解决?

在 vue.js 应用中,使用

为了解决这个问题,demo 中提供了以下示例:

<template>
  <svg viewbox="0 0 20 20">
    <path .../>
    <path .../>
  </svg>
</template>

<template>
  <svg v-html="'viewbox="0 0 20 20" ...'" >
    <!-- ... -->
  </svg>
</template>
登录后复制

差异原因

立即学习“前端免费学习笔记(深入)”;

出现这种差异的原因在于 svg 中 viewbox 属性的书写规范。

  • 直接在模板中书写时,由于 vue 自动将属性名转换为小写,因此应使用 viewbox。
  • 而使用 v-html 时,属性名保持原样,因此需要使用 viewbox。

解决方案

要解决此差异,可以使用以下方法:

  • 在 vue 模板中将 viewbox 属性修改为 viewbox:
<template>
  <svg viewbox="0 0 20 20">
    <!-- ... -->
  </svg>
</template>
登录后复制
  • 在使用 v-html 时,手动将 viewbox 转换为小写:
<template>
  <svg v-html="'viewbox="0 0 20 20" ...'" >
    <!-- ... -->
  </svg>
</template>
登录后复制

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7668.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666