该怎么理解“加冒号是数字,不加冒号是字符串”

该怎么理解“加冒号是数字,不加冒号是字符串”

前面说的是加冒号是v-bind的简写,这里:level="1"的意思是不是给my-title标签加上一个level的属性,其值为1?当不加冒号即level=1的用法好像没说过(或者我不记得了)。

老师这里说加冒号是数字,不加冒号是字符串。这句话该怎么和之前说的联系起来?

https://img1.sycdn.imooc.com//climg/6406fb0e09e2a23305460158.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕久久 2023-03-07 17:00:56

同学你好,解答如下:

1、:level="1"的意思是给my-title标签加上一个level的属性,其值为数字1。

2、:是v-bind的简写。当属性前面添加冒号时,属性值会被当成表达式、变量来解析;如果不加冒号,则会当成字符串解析。如下课程中,讲解过v-bind,可以回顾一下:

https://class.imooc.com/lesson/2153#mid=50936&time=116

https://class.imooc.com/lesson/2153#mid=50940&time=176

3、这里的情况比较特殊,之前没接触过,可以当成固定知识记住。

当属性值是数字时,加不加冒号,效果有差别:

:level="1"这种写法,会把数字1赋值给level属性;level="1"这种写法,会把字符串1赋值给level属性。

祝学习愉快!

  • 提问者 慕粉1234567890123 #1

    对于3:是不是说这里的冒号并不是v-bind的用法?

    2023-03-07 17:13:11
  • 理解有误,就是v-bind的用法。只是之前的课程中没有接触过:level="数字"这种写法;只接触过常见的:level="变量/表达式"这种写法。

    2023-03-07 17:17:39
  • 我重新表述我的疑惑。

    背景前提:

    冒号的使用老师在两个地方说过:1是v-bind的简写,表示给元素添加属性;2是组间动态传值时使用冒号表示变量。而不加冒号的写法仅在组间静态传值时使用。


    问题:

    1、视频中老师说“加冒号是数字,不加冒号是字符串”,是否意味着:level='1'的写法是给元素添加一个level属性其值为数字1,并且level=1作为父组件的实参,可被子组件接收?

    2、不加冒号的写法level=“1”除了传递给子组件的参数是字符串1外,是否会给元素添加level=1的属性?

    3、为什么加冒号可以同时表示添加属性并同时传参?是否意味子组件接收参数其实是从父组件的属性里获取的?具体过程是如何?


    2023-03-08 08:57:42
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师