vue props属性无法校验

发布于 2022-09-05 10:59:28 字数 1205 浏览 16 评论 0

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>vue-project</title>
        <script src="node_modules/_vue@2.4.2@vue/dist/vue.min.js"></script>
    </head>
    <body>
        <div id="app">
            <h3>{{ parentValue }}</h3>
            <example :propA="parentValue"></example>
        </div>
        <script>

            Vue.component('example', {
                props: {
                    //propA的类型为Number
                    propA: {
                        type: Number,
                    },
                },
                template: '<span> {{ propA }} </span>',
            });

            var vm = new Vue({
                el: "#app",
                data: {
                    parentValue: 'abcd',
                }
            });
        </script>
    </body>
</html>

propA绑定到了parentValue的值,类型验证定义为Number,当parentValue为字符串的时候为什么会没有出现错误?

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

内心旳酸楚 2022-09-12 10:59:28

把代码写对后,如果使用的不是min版的vue.js,可以从控制台中看到warn提示:

Number, got String.

found in

---> <Example>

   <Root>
<div id="app">
  <h3>{{ parentValue }}</h3>
  <example :prop-a="parentValue"></example>
</div>

注意html是不区分大小写的,所以propA根本没有传递给子组件,当然不会有错误提示,除非你还声明了required

他夏了夏天 2022-09-12 10:59:28

注意区分 :propApropA

你在子组件里,定义了propA的类型必须是number的,所以你传进去的是String当然就报错啦

看文档

一杯敬自由 2022-09-12 10:59:28

哈哈 我刚学习vue的时候也是由于用了驼峰命名导致一个报错 花了我好几个小时找bug

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文