VUE的问题?

clipboard.png

官方文档上的,为什么第一个没有单引号,第二个有?

阅读 3.8k
6 个回答

忘了对象属性的说明了吗
你可以加引号也不可以不加,但有一些是一定要加的,比如有-的,或者'sdkjs.sdsd'这样的

写的时候忘记统一了?

vue的问题怎么加的是react.js的tag

第二个有个减号“-”,而减号是不能用在标识符的,也不能直接用在对象属性名上,需要加上双引号

因为第二个属性包含特殊符号 -javascript 的命名中是不可以这样写的
但是 Objectkey 是字符串类型 所以可以这么用 拿 style 对象为例子

// 初始化时的写法
const style = { 'margin-top': '10px', marginBottom: '10px' }

// 动态设置的写法
style['margin-top'] = '20px'

有一个比较特殊的东西 DOM 元素的 style 属性兼容两种写法
可以用 [key] 的形式访问或设置 也可以使用 camelCase 的形式访问或设置


clipboard.png

楼主的问题涉及到两个知识点:
1.对象的key值类型都是被解析成字符串类型来处理的,即使你写成光秃秃的active,也会被解析成"active"
2.js标识符规范, 由任意顺序的大小写字母、数字、下划线和美元符号组成

弄清楚了这两点,基本上可以理解vue中的v-on语法解析属性值对象的key值有无分号的必要性,符合标识符规范的,可以不加分号,不符合标识符规范的,必须加分号,不然无法正确被解析

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题