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的應用,他的作用就是在單頁應用中保持狀態和數據的。