官方文档上的,为什么第一个没有单引号,第二个有?
因为第二个属性包含特殊符号 -
而 javascript
的命名中是不可以这样写的
但是 Object
的 key
是字符串类型 所以可以这么用 拿 style
对象为例子
// 初始化时的写法
const style = { 'margin-top': '10px', marginBottom: '10px' }
// 动态设置的写法
style['margin-top'] = '20px'
有一个比较特殊的东西 DOM
元素的 style
属性兼容两种写法
可以用 [key]
的形式访问或设置 也可以使用 camelCase
的形式访问或设置
楼主的问题涉及到两个知识点:
1.对象的key值类型都是被解析成字符串类型来处理的,即使你写成光秃秃的active,也会被解析成"active"
2.js标识符规范, 由任意顺序的大小写字母、数字、下划线和美元符号组成
弄清楚了这两点,基本上可以理解vue中的v-on语法解析属性值对象的key值有无分号的必要性,符合标识符规范的,可以不加分号,不符合标识符规范的,必须加分号,不然无法正确被解析
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
忘了对象属性的说明了吗
你可以加引号也不可以不加,但有一些是一定要加的,比如有-的,或者'sdkjs.sdsd'这样的