为什么vue组件的属性,有的需要加冒号“:”,有的不用?
如 https://vuxjs.gitbooks.io/vux... 案例所示:
<tab :line-width="2" active-color="#fc378c">
<tab-item :selected="demo2 === item"
v-for="item in list2"
@click="demo2 = item"></tab-item>
</tab>
其中:line-width
有:前缀,而active-color
则不用。
是由于数据类型的关系吗?
比如Boolean
+Number
类型因为是properties
就需要加:
,而String
因为是attribute
所以不需要?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
加冒号的,说明后面的是一个变量或者表达式,没加冒号的后面就是对应的字符串字面量
加冒号的是
vue
的v-bind
语法糖,绑定vue的一个数据;不加冒号的就是HTML的属性,和onclick="doSth()"
是一个意思。加冒号,两点:
例如
<img :src='item.src'
>,说明 img标签的src属性是动态的,根据你的data里面的数据而来- 另一种,例如你这个
tab
是一个component,表示你把tab组件的line-width
属性赋值了2
,通过你的tab组件的props:['line-width']
定义是这样的:
赋值是这样的:
展示是这样的:
跟数据类型没有关系,属性绑定 跟你的属性是不是动态改变的有关。加冒号绑定在js中动态改变
不加冒号传值为字符串,加冒号说明你传的是一个对象
:是属性绑定
请多看官方文档。