#最近新学习vue的开发,开发中遇到一个这样的问题,我这里简单写一个demo为大家说明下,希望能帮助到有一些同学

这里是我重新写的demo,能最直观的看到现象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <div>
            <com1 :dataMsg="msg"></com1>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                msg:"niubility",
           },
            methods: {
            },
            //默认情况下 子组件无法直接拿到vue中的data数据和方法
            components:{
                com1:{
                    template:'<h1>这是一个子组件-------data中的msg为{{dataMsg}}</h1>',
                    //把父组件传递过来的绑定属性在子组件中定义,这里注意很多属性都是带s的 data为function,props为数组
                    props:['dataMsg']
                }
                
            }
        })
    </script>
</body>
</html>

在这里插入图片描述

如上,定义一个子组件想引用vue实例中的data 属性,在做属性绑定的时候使用了驼峰,结果拿不到值,我这个使用的是线上的版本利用vue-devtools 发现props中的dataMsg为undefined,这个时候的改为datamsg就正确了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <div>
            <!-- 这里的属性定义不能用驼峰,要用小写,可能跟vue版本有关系 -->
            <com1 :datamsg="msg"></com1>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                msg:"niubility",
           },
            methods: {
            },
            //默认情况下 子组件无法直接拿到vue中的data数据和方法
            components:{
                com1:{
                    template:'<h1>这是一个子组件-------{{datamsg}}</h1>',
                    //把父组件传递过来的绑定属性在子组件中定义
                    props:['datamsg']
                }
                
            }
        })
    </script>
</body>
</html>

在这里插入图片描述

这里说明vue版本为2.6.11中出现不能使用驼峰 命名父子组件间传递属性,但是之前的版本没测试是否可行

Logo

前往低代码交流专区

更多推荐