vue中怎么定义全局组件?

组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。我们经常会自定义很多组件以满足我们不同的需求。

那么vue中怎么定义全局组件?

方法1

全局组件用到的是 Vue.component(tagName,option),tagName是自定义的组件名称,option是组件构造器。具体使用方法如下:

在main.js中设置:

Vue.component('my-component', {
  template: '<button v-on:click="clickShow">切换<h1 v-show="show">全局组件的学习</h1></button>',
  data () {
    return {
      show: true
    }
  },
  methods:{
    clickShow(){
      this.show = !this.show
    }
  }
})

在组件中直接引用:

<template>
  <div>
    <my-component ></my-component>
  </div>
</template>

渲染结果为:

1.jpg-600

方法2

Vue.extend(options) ,Vue.extend返回的是一个“扩展实例构造器”,不是具体的组件实例,也就是预设了部分选项的Vue的实例构造器,它常常服务于Vue.component用来生成组件,可以简单理解为当在模板中遇到该组件作为标签的自定义元素时,会自动调用“扩展实例构造器”来生产组件实例,并挂在到自定义元素上.

在main.js中设置:

var Profile = Vue.extend({
  template: '<button v-on:click="show=!show">切换<h1 v-show="show">全局组件的学习</h1></button>',
  data: function () {
    return {
      show: true
    }
  }
})
 Vue.component('my-component',Profile)
//Vue.component 是用来全局注册组件的方法,其作用是将通过 Vue.extend 生成的扩展实例构造器注册(命名)为一个组件

同上直接引用,渲染结果同上。

注:data 在 Vue.extend()中它必须是函数。

更多vue.js相关知识,可访问 Vue.js答疑 栏目!!

以上就是vue中怎么定义全局组件?的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Vue.js 答疑