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

Posted sunnyyangwang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue2.0入门系列——父子组件间通信相关的知识,希望对你有一定的参考价值。

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>

 

以上是关于Vue2.0入门系列——父子组件间通信的主要内容,如果未能解决你的问题,请参考以下文章

Vue2.0 实战项目 组件间通信的方法

vue2.0父子组件以及非父子组件通信

vue2.0 父子组件通信 兄弟组件通信

vue2.0 父子组件通信 兄弟组件通信

vue2.0父子组件通信的方法

vue2.0父子组件以及非父子组件如何通信