• 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>
    
  • 相关阅读:
    小程序学习过程中遇到的问题
    小程序云函数调用webservice接口
    小程序云函数调用http或https请求外部数据
    MQTT Web Toolkit
    mqtt.mini.js 使用
    MQTT 浏览器 mqttws31.min.js
    MQTT.js browser node 均支持
    mqtt开源服务器 EMQX ,客户端MQTTX5.0,使用指南
    vue调试工具vue-devtools安装及使用方法
    Js 类继承 extends
  • 原文地址:https://www.cnblogs.com/jianjie/p/13535758.html
Copyright © 2020-2023  润新知