其他分享
首页 > 其他分享> > 19-父组件向子组件传递数据---props机制

19-父组件向子组件传递数据---props机制

作者:互联网

1、父组件向子组件传递静态数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--
        使用组件:
            props传递静态数据:就是写死一个数据
                    动态数据:数据可以改变
        父组件向子组件传递数据:
            a、传递静态数据   在组件使用标签上 声明静态数据 key=value   在组件定义内部使用props进行接收数据才行
    -->
    <div id="app">
        <h1>{{msg}}</h1>

        <login title="我是标题"></login>
    </div>
</body>
</html>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>

    const login = {
        template:`<div><h3>用户登录-----{{title}}----{{loginTitle}}</h3></div>`,
        data(){
            return {
                //title: "我是子组件内部标题"   //会报错,因为props已有这个变量
                loginTitle:this.title
            }
        },
        props:['title'], //用来接收父组件给当前组件传递数据  注意:props机制接收数据就相当于在自己data中定义这样一个数据

    }

    const app = new Vue({
        el: "#app",
        data:{
            msg: "组件之间数据传递",
        },
        components:{ //注册局部组件
            login,
        }
    });
</script>

2、父组件向子组件传递动态数据
【将子组件的变量绑定父组件的变量,当父组件变量发生改变的时候,就会影响子组件的数据】
【但是子组件数据变化不会影响父组件的数据,因为vue设计的单项数据流传递,为了防止子组件数据改变而影响父组件的状态】

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--
        向子组件传递动态数据: props机制
            a、组件标签上声明key=value  组件内部使用props数组进行声明  对应接口key
    -->
    <div id="app">
        <input type="text" v-model="name">
        <login v-bind:name="name"></login>
    </div>
</body>
</html>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>

    const login = {
        template: `<div><h3>用户登录----{{name}}</h3></div>`,
        props: ['name'],
    }

    const app = new Vue({
        el: "#app",
        data: {
            name:"我是vue实例管理数据"
        },
        methods:{},
        components:{
            login,
        }
    });
</script>

标签:向子,const,title,app,传递数据,props,组件,data
来源: https://www.cnblogs.com/morehair/p/15338935.html