V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wheelg
V2EX  ›  Vue.js

Vue3 的一个神奇 bug?

  •  
  •   wheelg · 2021-08-13 11:56:34 +08:00 · 1886 次点击
    这是一个创建于 978 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在封装 element plus form 组件的时候,我发现 Form 父组件传给 FormItem 的子组件的 modelValue 值居然会被自动转换???明明传给子组件的 v-model 值是空字符串"",但是在子组件打印 prop.modelValue 就变成了布尔值 true,我的代码里明明没有修改过 modelValue,更神奇的事,如果我把同样的值不用 v-model 而是其他名字例如 v-model:xxx 传给子组件,子组件就能成功打印出空字符串,而且这个转换似乎只对空字符串生效,可把我坑死了。

    fDKQgI.png

    图中红框绑定的值在父组件里明明就是同一个,但是 v-model 却被直接转换了,打印出来的 modelValue 值为 true,但是 x 的值却是字符串,这个操作是不是太迷惑了?

    补充一个父组件传值的代码: fDQg39.png

    3 条回复    2021-08-15 10:34:27 +08:00
    sleepm
        1
    sleepm  
       2021-08-14 19:35:20 +08:00
    modelVale 是一个关键字,像 js 里的 if else var 等不能作为变量名一个道理,会出错
    https://v3.vuejs.org/guide/migration/v-model.html
    sleepm
        2
    sleepm  
       2021-08-14 19:35:52 +08:00
    modelValue 是一个关键字 /关键词
    wheelg
        3
    wheelg  
    OP
       2021-08-15 10:34:27 +08:00 via iPhone
    @sleepm 这是我 debug 时候的代码😂实际上即使不用 modelValue 也会出现一样的问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5680 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:41 · PVG 09:41 · LAX 18:41 · JFK 21:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.