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>
    
  • 相关阅读:
    又爱又恨的eval
    http_build_query 这个方法会把值为NULL的给干掉
    allow_url_fopen设置
    纠结了下 B 和 STRONG标签区别
    Drupal 发邮件模块 drupal smtp 安装与设置
    php array_merge 和 两数组相加区别
    学历严格正相关于素质 Kai
    表语就是主语补语,靠 Kai
    一些真正有思想的up Kai
    光速不变且最大,换个思路想,非常合理,犹如天经地义【转载】 Kai
  • 原文地址:https://www.cnblogs.com/jianjie/p/13535758.html
Copyright © 2011-2022 走看看