Vue2.0 【第三季】第1節 propsData Option 全局擴展的數據傳遞

  • 2020 年 3 月 16 日
  • 筆記

Vue2.0 【第三季】第1節 propsData Option 全局擴展的數據傳遞


第1節 propsData Option 全局擴展的數據傳遞

這一季講的是基礎中的選項,選項就是在Vue構造器里的配置功能的前綴(Vue已經給我們定義好了),Vue有很多選項,我們將在這一級教程中一一介紹。

propsData 不是和屬性有關,他用在全局擴展時進行傳遞數據。先回顧一下全局擴展的知識,作一個<header></header>的擴展標籤出來。實際我們並比推薦用全局擴展的方式作自定義標籤,我們學了組件,完全可以使用組件來做,這裡只是為了演示propsData的用法。

程式碼如下:

<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">      <script type="text/javascript" src="../assets/js/vue.js"></script>      <title>PropsData Option Demo</title>  </head>  <body>      <h1>PropsData Option Demo</h1>      <hr>      <header></header>        <script type="text/javascript">         var  header_a = Vue.extend({             template:`<p>{{message}}</p>`,             data:function(){                 return {                     message:'Hello,I am Header'                 }             }         });         new header_a().$mount('header');      </script>  </body>  </html>

瀏覽器效果:

擴展標籤已經做好了,這時我們要在掛載時傳遞一個數字過去,我們就用到了propsData。 我們用propsData三步解決傳值:

  • 1.在全局擴展里加入props進行接收。propsData:{a:1}
  • 2.傳遞時用propsData進行傳遞。props:[『a』]
  • 3.用插值的形式寫入模板。{{ a }}

完整程式碼:

<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">      <meta name="viewport" content="width=device-width, initial-scale=1.0">      <title>propsData option</title>      <script type="text/javascript" src="../assets/js/vue.js"></script>  </head>      <body>          <h1>propsData option</h1>          <hr>          <header></header>            <script type="text/javascript">              var header_a = Vue.extend({                  template:'<p>{{message}}-{{a}}</p>',                  data:function(){                      return {                          message:'Hello , I am header!'                      }                  },                  props:['a']              });                new header_a({propsData:{a:12}}).$mount('header');          </script>      </body>  </html>

瀏覽器效果:

總結:propsData在實際開發中我們使用的並不多,我們在後邊會學到Vuex的應用,他的作用就是在單頁應用中保持狀態和數據的。