zoukankan      html  css  js  c++  java
  • VUE参考---为什么组件中的data必须是一个方法且返回一个对象

    VUE参考---为什么组件中的data必须是一个方法且返回一个对象

    一、总结

    一句话总结:

    便于复用的组件保持自己的数据,让各个复用组件的数据不一样
      <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>
    
        // 这是一个计数器的组件, 身上有个按钮,每当点击按钮,让 data 中的 count 值 +1
        Vue.component('counter', {
          template: '#tmpl',
          data: function () {
            // return dataObj
            return { count: 0 }
          },
          methods: {
            increment() {
              this.count++
            }
          }
        })

    1、如果想复用的组件共享数据,应该如何做?

    组件的data返回一个共享的数据(比如外部对象)

    二、为什么组件中的data必须是一个方法且返回一个对象

    博客对应课程的视频位置:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 
     4 <head>
     5   <meta charset="UTF-8">
     6   <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7   <meta http-equiv="X-UA-Compatible" content="ie=edge">
     8   <title>Document</title>
     9   <script src="./lib/vue-2.4.0.js"></script>
    10 </head>
    11 
    12 <body>
    13   <div id="app">
    14     <counter></counter>
    15     <hr>
    16     <counter></counter>
    17     <hr>
    18     <counter></counter>
    19   </div>
    20 
    21 
    22   <template id="tmpl">
    23     <div>
    24       <input type="button" value="+1" @click="increment">
    25       <h3>{{count}}</h3>
    26     </div>
    27   </template>
    28 
    29   <script>
    30     var dataObj = { count: 0 }
    31 
    32     // 这是一个计数器的组件, 身上有个按钮,每当点击按钮,让 data 中的 count 值 +1
    33     Vue.component('counter', {
    34       template: '#tmpl',
    35       data: function () {
    36         // return dataObj
    37         return { count: 0 }
    38       },
    39       methods: {
    40         increment() {
    41           this.count++
    42         }
    43       }
    44     })
    45 
    46     // 创建 Vue 实例,得到 ViewModel
    47     var vm = new Vue({
    48       el: '#app',
    49       data: {},
    50       methods: {}
    51     });
    52   </script>
    53 </body>
    54 
    55 </html>
     
  • 相关阅读:
    推荐一套 Spring Boot 快速开发框架,接私活、练手必备!
    C# 三种字节数组(byte[])拼接的性能对比测试
    C#//字节数组转16进制字符串
    C# 16进制与字符串、字节数组之间的转换
    linux脚本学习
    ubuntu12.04纪事
    linux常用命令
    linshi
    2022壬寅年天干四化
    码农们来一起讨论下数据库设计....
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12752243.html
Copyright © 2011-2022 走看看