Vue系列教程-19-component-组件化-data属性-为什么data是函数?

注意:component的data属性必须是函数,为了避免多个组件实例共享同一个数据。


Vue.component('my-count',{
            template:"#myCount",
            data() {
                return {
                    count:0,
                }
            });

我是分割线


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <template id="myCount">
        <div>
            <h1>当前计数:{{ count }}</h1>
            <button @click="add">+</button>
            <button @click="dec">-</button>
        </div>
    </template>
    <div id="app">
        <my-count></my-count>
        <my-count></my-count>
        <my-count></my-count>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        Vue.component('my-count',{
            template:"#myCount",
            //组件的数据存放,为什么是一个函数?避免多个组件实例共享同一个数据
            data() {
                return {
                    count:0,
                }
            },
            methods: {
                add(){
                    this.count++;
                },
                dec(){
                    this.count--;
                }
            }

        });

        let app = new Vue({
            el: '#app',
        });
    </script>
</body>
</html>

我是分割线

前台效果:


Title
点赞

发表评论