Vue组件的简单介绍

在介绍组件之前,我们来说说 组件化
组件化就是将系统功能分离成独立的功能部分的方法,一般指的是单个的某一种东西,例如js、css而组件化针对的是页面中的整个完整的功能模块划分,组件是一个html、css、js、image等外链资源,这些部分组成的一个聚合体
优点:代码复用,便于维护
划分组件的原则:复用率高的,独立性强的
组件应该拥有的特性:可组合,可重用,可测试,可维护

在vue中,我们通过Vue.extend来创建Vue的子类,这个东西其实就是组件

首先,要创建组件


let component=Vue.extend({template:"<h1>这里是组件</h1>"})

然后,注册一个组件 Vue.component(‘组件的名字’,创建的组件)

Vue.component('tel', component)

最后, 把组件名当成标签名来使用 ,但组件名不能和标签名一致

看看简单的实例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title></title>
  <script src='../vue.js'></script>
  <style>

  </style>
</head>
<body>
<div id='app'> 
  <tel></tel>
  <tel></tel>
  <tel></tel>
</div> 
<script>
// 组件的创建
let component=Vue.extend({template:"<h1>这里是组件</h1>"})
// 注册一个组件 Vue.component('组件的名字',创建的组件)
Vue.component('tel',component)
// 把组件名当成标签名来使用 组件名不能和标签名一致

let vm = new Vue({
  el:'#app',
})
</script>
</body>
</html>

结果为
在这里插入图片描述

组件继承自实例(声明的vm),实例有的组件也有,会有一些变异
组件的目的是为了实现复用

通过 Vue.componment 注册的组件叫全局组件
而上述的组件创建还有简写方式

// 全局组件创建的简写 参数1 组件名 参数2 组件的配置项
Vue.component('tel',{template:'<h1>呵呵哒</h1>'})

全局组件在所有的实例里都可以用
全局组件的注册要求写在实例的前方

当然有全局组件也就有局部组件
局部组件和全局组件的创建方式是一致 ,只是注册方式不一样
局部组件在哪注册就在哪用
局部组件注册在实例里的配置项 –components

let vm = new Vue({
  el:'#app1',
  data:{
    name:'实例1'
  },
  components:{
    'tel':{template:"<h1>这里是局部组件tel</h1>"}
  }
})

所以 tel 组件只能在 id为 app1 的元素内使用

组件的配置项
template
和实例里的 el 类似 关联dom元素
简单的dom结构可 直接使用字符串 (如上文)
dom结果复杂 可用template标签 ,该标签再页面不会真正的渲染 ,但只允许有一个根元素,如下所示

//js
 Vue.component('hehe',{
   template:'#tp1'
 }) 
 let vm1 = new Vue({
  el:'#app1',
})
//html
<div id='app1'> 
    <hehe></hehe>
  </div> 
  <!-- 组件模板 -->
  <template id='tp1'>
    <div>//只允许有一个根元素
      <p v-for='item in 10'>{{item}}</p>
    </div>
  </template>

结果
在这里插入图片描述
data
组件中的data是一个函数,有返回值

let vm1 = new Vue({
  el:'#app1',
  data:{
    name:'这里是实例'
  },
  components:{
    hehe:{
      template:'#tp1',
      data(){
        return{ name:'张三'}
      }
    }
  }
})

组件继承自实例 实例有配置项的组件都有,部分会发生改变,如 data , template…要想了解更多组件的配置项可进入vue官网进行了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值