美文网首页
组件中的数据存储的位置

组件中的数据存储的位置

作者: 63537b720fdb | 来源:发表于2020-07-20 22:49 被阅读0次

    1.组件中数据存放位置的引入

    组件的html部分可以存放在template标签中,并且template标签是独立在Vue实例外的,
    若template中的数据也需要动态化的话,那动态数据存放在哪?
    是否同样存放在Vue实例中呢?

    验证Vue组件是否能使用Vue实例data中的数据:

            <div id="app">
                <cpn1></cpn1>
            </div>
            <template id="cpn1">
                <div>
                    <h2>{{message}}</h2>
                </div>
            </template>
            <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
                Vue.component('cpn1',{
                    template:'#cpn1'
                })
                const app = new Vue({
                    el: '#app',
                    data: {
                        message: 'hello'
                    }
                })
            </script>
    

    报错:message没有定义


    image.png

    说明Vue组件不能使用Vue实例data中的数据。
    即使组件能使用Vue实例中的数据,但是一个页面划分成若干个组件,每个组件中的数据都存放在Vue实例中的data里,会让Vue实例变得非常臃肿。
    所以无论如何,Vue组件中的数据是不会存放在Vue实例中的。

    因为Vue组件的原型链上有Vue实例的原型,所以Vue组件的数据应该存放在自己的data内。

    2.组件中数据的存放位置

            <template id="cpn1">
                <div>
                    <h2>{{message}}</h2>
                </div>
            </template>
    

    组件中的数据存放在组件的data内,并且data是个函数,函数内return回一个对象,在return回的对象中存放数据

                Vue.component('cpn1',{
                    template:'#cpn1',
                    data(){
                        return{
                            message:'hello'
                        }
                    }
                })
    
    image.png

    下一篇说明组件中的data为什么必须是个函数

    相关文章

      网友评论

          本文标题:组件中的数据存储的位置

          本文链接:https://www.haomeiwen.com/subject/nhpukktx.html