You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让文本插值在CSS函数与Router Link中生效?

问题描述

尝试实现一个可复用卡片组件,根据不同图片动态切换属性值。目前title的文本插值可正常工作,但在RouterLink的to属性及CSS的background-image函数中使用{{ link }}、{{ image }}进行文本插值时无法生效,需纠正用法。

代码示例:

<template>
      <RouterLink class="card" to="{{ link }}">
      <div class="card__background" style="background-image: url({{ image }})"></div>
      <div class="card__content">
        <h3 class="card__heading">{{ title }}</h3>
      </div>
      </RouterLink>
</template>
<script>
import { RouterLink } from 'vue-router';
export default {
    props: ['link', 'image', 'title'],
    created() {
      console.log(this.link)
      console.log(this.image)
      console.log(this.title)
    },
}
</script>
解决方案

在Vue中,双大括号{{}}仅适用于文本插值,不能直接用于属性绑定。动态属性和样式需要使用Vue的专属绑定语法:

  • RouterLink的to属性绑定:将to="{{ link }}"改为:to="link"(:是v-bind:的简写),通过属性绑定传递props值。
  • 动态背景图样式绑定:直接在style属性中用双大括号无效,需使用动态style对象语法,把style="background-image: url({{ image }})"改为:style="{ backgroundImage: url(${image}) }"。

修改后的完整代码:

<template>
  <RouterLink class="card" :to="link">
    <div class="card__background" :style="{ backgroundImage: `url(${image})` }"></div>
    <div class="card__content">
      <h3 class="card__heading">{{ title }}</h3>
    </div>
  </RouterLink>
</template>
<script>
import { RouterLink } from 'vue-router';
export default {
  props: ['link', 'image', 'title'],
  created() {
    console.log(this.link);
    console.log(this.image);
    console.log(this.title);
  },
};
</script>

内容的提问来源于stack exchange,提问作者Akirambur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 07:05:42