zoukankan      html  css  js  c++  java
  • 518 vue组件的data是函数,不是对象

    组件可以访问Vue实例数据吗?


    组件数据的存放


    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    
    <body>
    
      <div id="app">
        <cpn></cpn>
        <cpn></cpn>
        <cpn></cpn>
      </div>
    
      <!--1.script标签, 注意:类型必须是text/x-template-->
      <!--<script type="text/x-template" id="cpn">-->
      <!--<div>-->
      <!--<h2>我是标题</h2>-->
      <!--<p>我是内容,哈哈哈</p>-->
      <!--</div>-->
      <!--</script>-->
    
      <!--2.template标签-->
      <template id="cpn">
        <div>
          <h2>{{title}}</h2>
          <p>我是内容,呵呵呵</p>
        </div>
      </template>
    
      <script src="../js/vue.js"></script>
      <script>
    
        // 1.注册一个全局组件
        Vue.component('cpn', {
          template: '#cpn',
          data() {
            return {
              title: 'abc'
            }
          }
        })
    
        const app = new Vue({
          el: '#app',
          data: {
            message: '你好啊',
            // title: '我是标题'
          }
        })
      </script>
    
    </body>
    
    </html>
    

    为什么data是一个函数呢?

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    
    <body>
    
      <!--组件实例对象-->
      <div id="app">
        <cpn></cpn>
        <cpn></cpn>
        <cpn></cpn>
      </div>
    
      <template id="cpn">
        <div>
          <h2>当前计数: {{counter}}</h2>
          <button @click="increment">+</button>
          <button @click="decrement">-</button>
        </div>
      </template>
      <script src="../js/vue.js"></script>
      <script>
        // 1.注册组件
        const obj = {
          counter: 0
        }
        Vue.component('cpn', {
          template: '#cpn',
          // data() {
          //   return {
          //     counter: 0
          //   }
          // },
          data() {
            return obj
          },
          methods: {
            increment() {
              this.counter++
            },
            decrement() {
              this.counter--
            }
          }
        })
    
        const app = new Vue({
          el: '#app',
          data: {
            message: '你好啊'
          }
        })
      </script>
    
      <script>
      // const obj = {
      //   name: 'why',
      //   age: 18
      // }
      //
      // function abc() {
      //   return obj
      // }
      //
      // let obj1 = abc()
      // let obj2 = abc()
      // let obj3 = abc()
      //
      // obj1.name = 'kobe'
      // console.log(obj2);
      // console.log(obj3);
    
    
      </script>
    
    </body>
    
    </html>
    
  • 相关阅读:
    僵尸进程与孤儿进程/守护进程/互斥锁
    基于udp协议支持并发的套接字/并发相关的概念/开启进程的两种方式/进程对象的方法
    python3和python2的区别
    安装python
    浅谈aiohttp和middlewares
    IO多路复用之select,poll,epoll个人理解
    python之进程,线程,协程简单理解
    Python类__call__()方法
    python中str与bytes
    测试理论基础三
  • 原文地址:https://www.cnblogs.com/jianjie/p/13535758.html
Copyright © 2011-2022 走看看