评论

收藏

[MySQL] #yyds干货盘点#14.组件对象剖析

数据库 数据库 发布于:2021-12-26 17:20 | 阅读数:521 | 评论:0

一、Vue组件对象
1.Vue组件本质上是 VueComponent 对象,而VueComponent对象 是 Vue对象 的扩展类对象。

  • Vue组件创建时可以使用任何有效的Vue对象属性和方法(如 data、methods、computed、created、……)。
var c = Vue.component('my-component',{
  template: '<h3>hello world</h3>'
});
DSC0000.png

2.组件绑定的HTML结构

  • 可以直接在 template 属性中给出字符串形式,也可以使用HTML模板或Script模板形式;组件只允许有唯一一个根元素
  • 字符串:单引号或双引号,` ` 语法(支持字符串换行)
var c = Vue.component('my-component',{
  template: `
  <div class="rating">
    <span v-for="num in 5">
    <img src="images/star.png">
    </span>
  </div>
  `
});

  • HTML模板:在HTML中使用  <tmplate></template>标签给出有效的HTML代码,在创建组件的 template属性中,给出上述<template>标签的id值。
<template id="rating">
  <div class="rating">
    <span v-for="num in 5">
    <img src="images/star.png">
    </span>
  </div>
</template>
var c = Vue.component('rating',{
  template: '#rating'
});
二、组件对象的属性
创建组件时,可以使用任何有效的Vue对象属性,如data属性、computed属性、methods属性等等。

  • data属性:表示Vue组件可用的响应式数据

  • 必须是函数形式,否则程序出错;
  • 必须在函数中返回 独有对象,否则程序会产生对象共享内存的bug。
var c = Vue.component('my-component',{
  template: '.....',
  data: {
  name: 'my-component'
  }
});
<div id="app">
  <my-component></my-component>
  <my-component></my-component>
</div>
DSC0001.png


  • ​computed属性:Vue组件中使用的计算属性
  • methods属性:Vue组件中使用的自定义方法(函数)
  • 其它属性:生命周期回调方法、过滤器​



三、Vue组件对象(HTML代码)
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Vue组件对象剖析</title>
</head>
<body>
  <div id="app">
    <h6>my-component</h6>
    <my-component></my-component>
    <hr>
    <h6>另一个my-component</h6>
    <my-component></my-component>
  </div>
  <template id="my">
    <!-- 组件的html模板中只允许有一个根元素 -->
    <div>
      <div>this is div content</div>
      <p>this is p content from template</p>
      <p>message={{message}}</p>
      <button @click="message = 'update message'">修改message</button>
    </div>
  </template>
  <script src="vue.js"></script>
  <script>
    var data = {
      message: 'global message'
    }
    //创建一个全局组件
    const my = Vue.component('my-component',{
      template: '#my',
      //data属性:当前组件使用的数据信息
      //data属性必须是回调函数形式,回调函数中要返回对象
      //data属性应该返回一个独有对象
      data:function(){
        return {
        message: 'component-message'
        };
      }
      // template: `
      // <div>
      //   <span>this is span content</span>
      //   <p>this is p content</p>
      // </div>
      // `
    });
    //Vue实例对象
    var vm = new Vue({
      el: '#app'
    });
  </script>
</body>
</html>
:一定要引入Vue.js​​点击链接下载开发版或生产版本在html中引入即可​​