zoukankan      html  css  js  c++  java
  • 15.Vue组件中的data

    1.组件中展示数据和响应事件:

    // 1. 组件可以有自己的 data 数据
    // 2. 组件的 data 和 实例的 data 有点不一样,实例中的 data 可以为一个对象
    // 3. 但是组件中的 data 必须是一个方法 data: function(){}或者data(){}
    // 4. 组件中的 data 除了必须为一个方法之外,这个方法内部,还必须返回一个对象才行;
    // 5. 组件中 的data 数据使用方式,和实例中的 data 使用方式完全一样!

    代码实例:

    <!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="./lib/vue-2.4.0.js"></script>
    </head>
    
    <body>
      <div id="app">
        <mycom1></mycom1>
      </div>
      <script>
        // 1. 组件可以有自己的 data 数据
        // 2. 组件的 data 和 实例的 data 有点不一样,实例中的 data 可以为一个对象
        // 3. 但是组件中的 data 必须是一个方法 data: function(){}或者data(){}
        // 4. 组件中的 data 除了必须为一个方法之外,这个方法内部,还必须返回一个对象才行;
        // 5. 组件中 的data 数据使用方式,和实例中的 data 使用方式完全一样!!!
        Vue.component('mycom1', {
          template: '<h1>这是全局组件 --- {{msg}}</h1>',
          data: function () {
            return {
              msg: '这是组件的中data定义的数据'
            }
          }
        })
    
        // 创建 Vue 实例,得到 ViewModel
        var vm = new Vue({
          el: '#app',
          data: {},
          methods: {}
        });
      </script>
    </body>
    </html>
    View Code

     注意:

    Vue.component('mycom1', {
          template: '<h1>这是全局组件 --- {{msg}}</h1>',
          data: function () {
            return {
              msg: '这是组件的中data定义的数据'
            }
          }
    })

    注意:组件中的 data 必须是一个方法 data: function(){}或者data(){},这个方法内部,还必须返回一个对象才行:

    为什么?

    实例:

    <!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="./lib/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:表示每个组件中data数据共享
            return { count: 0 }   //私有
          },
          methods: {
            increment() {
              this.count++
            }
          }
        })
    
        // 创建 Vue 实例,得到 ViewModel
        var vm = new Vue({
          el: '#app',
          data: {},
          methods: {}
        });
      </script>
    </body>
    </html>
    View Code

    Vue组件中的method,见上面代码

  • 相关阅读:
    面向对象程序设计2020第二次作业
    工作日志。SQL篇
    正则表达式 转
    jquery ajax初级
    Javascript 面向对象编程
    C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE、ACCESS,附源码下载地址)
    asp.net后台操作javascript:confirm返回值(转)
    SQL学习之索引(转)
    linq学习(一)
    SQL基础数据库执行及优化2012.06.02听课记录+资料收集
  • 原文地址:https://www.cnblogs.com/yaboya/p/10259813.html
Copyright © 2011-2022 走看看