组件笔记

组件作用就是扩展html元素, 封装可重用的代码。

组件使用步骤:

①创建组件构造器  ②注册  ③使用

<!DOCTYPE html>
<html>
    <body>
        <div id="example">
            <!-- 3. #example是Vue实例挂载的元素,应该在挂载元素范围内使用组件-->
            <my-component></my-component>
        </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
    
        // 1.创建一个组件构造器
        var myComponent = Vue.extend({
            template: '<div>This is my first component!</div>'
        })
        
        // 2.注册组件,并指定组件的标签,组件的HTML标签为<my-component>
        Vue.component('my-component', myComponent)
        
        new Vue({
            el: '#example'
        });
        
    </script>
</html>
组件的创建和注册:
1. Vue.extend()是Vue构造器的扩展,调用Vue.extend()创建的是一个组件构造器,而不是一个具体的组件实例。 
2. Vue.extend()构造器有一个选项对象,选项对象的template属性用于定义组件要渲染的HTML。
3. 使用Vue.component()注册组件时,需要提供2个参数,第1个参数时组件的标签,第2个参数是组件构造器。
4. Vue.component()方法内部会调用组件构造器,创建一个组件实例。 
5. 组件应该挂载到某个Vue实例下,否则它不会生效。
全局注册组件

<div id="testComponent" class="wrap container">
  <my-component></my-component>
</div>
<script type="text/javascript">
  // 定义
  var myComponent = Vue.extend({
    template: '<div>test component</div>'
  })
  // 全局注册
  Vue.component('my-component', myComponent)
  var demo = new Vue({
  el: '#testComponent'
  }

  //局部注册

  var demo = new Vue({
   el: '#testComponent',
   components: {
    'my-component': {
      template: '<div>test div</div>'
      }
    }
  })

</script>

调用Vue.component()注册组件时,组件的注册是全局的,这意味着该组件可以在任意Vue示例下使用。
如果不需要全局注册,或者是让组件使用在其它组件内,可以用选项对象的components属性实现局部注册

posted on 2017-10-11 22:50  马伯安  阅读(146)  评论(0编辑  收藏  举报

导航