Vue.js中双引号转义问题求助
解决Vue v-bind中对象键名的引号冲突问题
嘿,这个问题其实是Vue模板表达式语法的小细节导致的~
你在插值表达式({{ }})里用config.pages["pageKey"]能正常运行,是因为插值区域直接执行JS表达式,引号规则和普通JS一致。但在v-bind的属性值里,你不需要对双引号做转义,这里有两个更靠谱的解决办法:
方法1:用单引号包裹键名
直接把键名的双引号换成单引号,就能避开和外层属性的双引号冲突:
<MyComponent v-bind:componentConfig="config.pages['pageKey'].components[0]" />
方法2:使用点语法(如果键名符合规则)
如果你的pageKey是合法的JS标识符(没有空格、特殊字符),还可以直接用点语法,写法更简洁:
<MyComponent v-bind:componentConfig="config.pages.pageKey.components[0]" />
为啥原来的写法不行?
在Vue模板的v-bind属性里,整个表达式是被外层双引号包裹的,你写的\"pageKey\"会被模板解析器先处理,反而破坏了JS表达式的语法结构。而用单引号或者点语法,就能完美避开引号冲突的问题啦。
内容的提问来源于stack exchange,提问作者B. Bri
相关产品推荐
相关产品推荐

