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

Vue.js如何转义特殊字符@以打印对象属性?

解决Vue模板中访问含@特殊字符属性的问题

嘿,这个问题我之前踩过坑!当你的对象属性名包含@这类特殊字符时,直接用点语法data.@attributes.value肯定会报错,因为Vue的模板表达式遵循JavaScript语法规则,而JavaScript里点语法不支持带特殊字符的属性名。

正确的解决方式:使用方括号语法

把点语法换成方括号+字符串形式来访问属性,这样就能避开特殊字符的解析问题了。修改后的代码如下:

<div>{{ data.author }}</div>
<div>{{ data['@attributes'].value }}</div>

原理说明

在JavaScript中,当对象的属性名包含特殊字符(比如@、#、空格)、或者是JavaScript保留字时,必须通过对象['属性名']的形式来访问属性值,而不能用对象.属性名的点语法。Vue模板里的表达式本质就是JavaScript代码,所以遵循同样的规则。

扩展:在Vue脚本中访问的写法

如果需要在Vue的methods、computed或者其他脚本逻辑里访问这个属性,也是同样的写法:

export default {
  data() {
    return {
      data: { 
        author: "john", 
        "@attributes": { value: 1 } 
      }
    };
  },
  computed: {
    attributesValue() {
      return this.data['@attributes'].value;
    }
  }
}

这样不管是模板里还是脚本里,都能正常获取到value的值1啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:15:27