vue2.0的父子組件數據傳遞


看了好久的vue,終於弄懂了父子組件是怎樣傳遞數據的,期中,我看了官網還是不懂,最終看了智能社陳瀟冰老師的視頻,恍然大悟,此刻,在這里,超級謝謝陳瀟冰老師。

大家都知道,父子組件的作用域是相互獨立的,那么父子組件又是怎樣通信的呢。VUE官網上說,父組件向子組件傳遞數據使用props選項,而子組件通過events事件觸發,發送數據給父組件

1.父組件向子組件傳遞數據

   首先引入vue.js(這里是2.2.0版本) 先將父子組件的內容展示出來

   <div id="box">

   <parent></parent>

 </div>

  <template id="parent"> //父組件內容

  <div> //此處元素有且只有一個,2.0以上版本規定,組件的根元素有且只有一個
    <div style="border:1px solid red;width: 300px;">
      <h1>父組件</h1>
      <p>{{parentMsg}}</p>
    </div>
    <child></child>
  </div>

 </template>


   <template id="child">  //子組件內容

  <div> //此處元素有且只有一個,2.0以上版本規定,組件的根元素有且只有一個
    <h1>子組件</h1>
    <p>{{childMsg}}</p>
  </div>

 </template>

   <script>

  var child={
    data(){
      return {
        childMsg:"我是子組件數據"
      }
    },
    template:"#child"
  }

  var parent={

    data(){
      return {
        parentMsg:"我是父組件的數據"
      }
    },

    components:{
      'child':child
    }

  new Vue({
    el:"#box",
    components:{
      'parent':parent
    }
  });

 </script>

   以下是瀏覽器渲染的效果圖:

現在我想,讓子組件獲取到父組件中parentMsg數據,只需兩步:

1.父組件將數據傳遞給props橋梁

2.props將數據傳遞給子組件

 所以,首先,子組件要聲明自己需要父組件的哪個數據,

<template id="parent"> //父組件內容
  <div>
    <div style="border:1px solid red;width: 300px;">
      <h1>父組件</h1>
      <p>{{parentMsg}}</p>
    </div>
    <child :get-parent="parentMsg"></child>  //通過get-parent屬性綁定父組件的parentMsg數據
  </div>
</template>

var child={
    data(){
      return {
        childMsg:"我是子組件數據"
      }
  },
  props:['getParent'],  //通過props聲明自己所要的數據
  template:"#child"
}

在子組件中調用父組件數據

<template id="child">  //子組件內容
  <div>
    <h1>子組件</h1>
    <p>{{childMsg}}</p>
    <p style="color:green">獲取父組件的數據-->{{getParent}}</p>
  </div>
</template>

 然后瀏覽器的渲染結果如下:

紅色箭頭處 就睡獲取到的父組件數據

今天就先說到這里,只講了父組件向子組件傳遞數據,接下里會說子組件向組件傳遞數據,歡迎噴子們噴我哦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM