Vue-4-03.組件-父組件向子組件傳值

4-03.組件-父組件向子組件傳值

代碼:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="./lib/vue-2.4.0.js"></script>
</head>

<body>
  <div id="app">
    <!-- 父組件,可以在引用子組件的時候, 通過 屬性綁定(v-bind:) 的形式, 把 需要傳遞給 子組件的數據,以屬性綁定的形式,傳遞到子組件內部,供子組件使用 -->
    <com1 v-bind:parentmsg="msg"></com1>
  </div>

  <script>
    // 創建 Vue 實例,得到 ViewModel
    var vm = new Vue({
      el: '#app',
      data: {
        msg: '123 啊-父組件中的數據'
      },
      methods: {},

      components: {
        // 結論:經過演示,發現,子組件中,默認無法訪問到 父組件中的 data 上的數據 和 methods 中的方法
        com1: {
          data() { // 注意: 子組件中的 data 數據,並不是通過 父組件傳遞過來的,而是子組件自身私有的,比如: 子組件通過 Ajax ,請求回來的數據,都可以放到 data 身上;
            // data 上的數據,都是可讀可寫的;
            return {
              title: '123',
              content: 'qqq'
            }
          },
          template: '<h1 @click="change">這是子組件 --- {{ parentmsg }}</h1>',
          // 注意: 組件中的 所有 props 中的數據,都是通過 父組件傳遞給子組件的
          // props 中的數據,都是隻讀的,無法重新賦值
          props: ['parentmsg'], // 把父組件傳遞過來的 parentmsg 屬性,先在 props 數組中,定義一下,這樣,才能使用這個數據
          directives: {},
          filters: {},
          components: {},
          methods: {
            change() {
              this.parentmsg = '被修改了'
            }
          }
        }
      }
    });
  </script>
</body>

</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章