Vue2.0入门系列——父子组件间通信

本文详细介绍了Vue中子组件如何修改数据,以及这种修改如何影响父组件。通过两个实例,一是子组件修改自身数据不影响父组件,二是子组件修改父组件传递的数据导致两者同步更新,展示了Vue组件间通信的机制。

1、子组件更新,父组件不变

点击“按钮”按钮,子组件数据被修改,父组件数据不变

 =========>>>>>> 

 

项目源代码,

<head>

    <meta charset="UTF-8">

    <title>v2.0父子组件通信</title>

    <script src="./vue.js"></script>

       <script>

         window.onload=function(){

            new Vue({

                   el: '#box',

                      data: {

                         aa: '我是父组件中的数据'

                      },

                      components: {

                         'child-com': {

                               props: ['msg'],  //接收父组件传递过来的信息

                               template: '#child',

                               methods:{

                               change(){

                                  this.msg='被修改'

                                  }

                               }

                            }

                      }

               });

         };

       </script>

       <!--子组件修改不能改变父组件的修改-->

</head>

<body>

    <template id="child">

         <div>

          <h3>我是子组件</h3>

          <input type="button" value="按钮" @click="change">

          <strong>{{msg}}</strong>

         </div>

       </template>

       <div id="box">

         父级: -> {{ aa }}

         <child-com :msg="aa"></child-com>

       </div>

</body>

 

2、子组件更新,父组件随之更新

点击“按钮”按钮,父子组件均数据被修改,

<head>

    <meta charset="UTF-8">

    <title>v2.0父子组件通信</title>

    <script src="./vue.js"></script>

       <script>

         window.onload=function(){

            new Vue({

                   el: '#box',

                      data: {

                         giveData:{

                              aa: '我是父组件中的数据'

                            }

                      },

                      components: {

                         'child-com': {

                               props: ['msg'],  //接收主组件传递过来的信息

                               template: '#child',

                               methods:{

                               change(){

                                    //this.msg='被修改'

                                          this.msg.aa='被修改'

                                  }

                               }

                            }

                      }

               });

         };

       </script>

       <!--子组件修改不能改变父组件的修改-->

</head>

<body>

    <template id="child">

         <div>

          <h3>我是子组件</h3>

          <input type="button" value="按钮" @click="change">

          <strong>{{msg.aa}}</strong>

         </div>

       </template>

       <div id="box">

         父级: -> {{ giveData.aa }}

         <child-com :msg="giveData"></child-com>

       </div>

</body>

 

转载于:https://www.cnblogs.com/sunnyyangwang/p/10286601.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值