Vue,组件-why componets data must be a function

Vue,组件-why componets data must be a function

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8     <script src="../js/vue.js"></script>
 9 </head>
10 <body>
11     <div id="app">
12         <counter></counter>
13         <hr>
14         <counter></counter>
15         <hr>
16         <counter></counter>
17     </div>
18 
19     <template id="tmpl">
20         <div>
21             <!-- increment 自增 -->
22             <input type="button" value="+1" @click="increment" >
23             <h3> {{ count }} </h3>
24         </div>
25     </template>
26 
27 </body>
28 </html>
29 <script>
30 
31     // 在外部定义一个对象, 放到计数器组件中 
32     // 这样是可以的, 但仅限单个组件,如果是多个组件的话组件会一起变
33     var dataObj = { count: 0}
34 
35     // 这是一个计数器组件, 身上有个按钮, 每当点击按钮, 让 data 中的 count 值 +1
36      Vue.component('counter', {
37          template:'#tmpl',
38          data: function(){
39             // 最好不要在外部定义
40             // return dataObj;
41 
42             // 三个组件不会一起增加, 会单独增加, 这就是为什么要在内部定义对象
43             return { count: 0 }
44          },
45          methods:{
46             increment(){
47                 // this.count +=1 
48                 this.count++
49             }
50          }
51      })
52 
53      var vm = new Vue({
54          el: '#app',
55          data: { },
56          methods: { }
57      })
58 
59 
60 </script>

效果图

猜你喜欢

转载自www.cnblogs.com/wo1ow1ow1/p/11138904.html