Vue2.0 【第三季】第1节 propsData Option 全局扩展的数据传递

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

Keep moving on!
原文地址:https://www.cnblogs.com/Elva3zora/p/12505888.html