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的应用,他的作用就是在单页应用中保持状态和数据的。