vue_30组件中返回局部的对象原因(不影响创建出来的其他对象)

可以理解为面向对象模式,同一个类创建出来的不同对象,拥有各自的实例属性

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../util/vue-2.4.0.js"></script>
</head>

<body>
<div id="app">
    <counter></counter>
    <hr>
    <counter></counter>
    <hr>
    <counter></counter>
</div>


<template id="tmpl">
    <div>
        <input type="button" value="+1" @click="increment">
        <h3>{{count}}</h3>
    </div>
</template>

<script>
    var dataObj = { count: 0 };

    // 这是一个计数器的组件, 身上有个按钮,每当点击按钮,让 data 中的 count 值 +1
    Vue.component('counter', {
        template: '#tmpl',
        data: function () {
            // return dataObj
            return { count: 0 }  // 如果返回上面这句话写的全局变量,修改一个组件
            //所有组件都会改变,如果每个组件返回一个自己作用域的对象,不会影响其他组件
            //相当于面向对象(类)  self的实例属性
        },
        methods: {
            increment() {
                this.count++
            }
        }
    });

    // 创建 Vue 实例,得到 ViewModel
    var vm = new Vue({
        el: '#app',
        data: {},
        methods: {}
    });
</script>
</body>

</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容