vue 组件化的入门详解

组件

组件(Component)是Vue.js最核心的功能,也是整个框架设计最精彩的地方,当然也是最难掌握的。组件可以扩展HTML元素,封装可重用的代码。为什么使用组件?当然是为了提高代码的重用性;

组件的用法

组件是需要注册才可以使用的,注册有全局注册和局部注册两种方式。全局注册后,任何Vue实例都可以使用,

  • 全局注册代码如下:
Vue.component('my-component', {
// 选项
})

// my-component就是注册的组件自定义标签名称,推荐使用小写加减号分割的形式命名。要在父实例中使用这个组件,必须要在实例创建前注册,之后就可以用<my-component></my-component>的形式来使用组件了。

<div id="app">
    <my-component></my-component>
</div>
<script>
Vue.component('my-component', {
//选项
});
var app = new Vue({
    el: '#app'
})
</script>

此时的页面还是空白的,因为我们注册的组件没有任何内容,在组件选项中添加template就可以显示内容了。此时注意template的DOM结构必须被一个元素包含。

Vue.component('my-component', {
    template: '<div>这里是组件的内容</div>'
});

  • 局部注册

局部注册的组件只有在该实例作用域下有效。组件中也可以使用components选项来注册,使组件可以嵌套,示例如下:

<div id="app">
    <my-component></my-component>
</div>
<script>
var child = {
    template: '<div>局部注册组件的内容</div>'
}
var app = new Vue({
    el: '#app',
    components: {
        'my-component': child
    }
})
</script>

Vue组件的模板在某些情况下会受到HTML的限制,比如table标签内只允许使用tr、th等表格元素,所以在table内直接使用组件是无效的。在这种情况下,可以使用特殊的is属性来挂载组件,示例如下:

<table>
    <tbody is="my-component"></tbody>
</table>

tbody在渲染是会被替换为组件的内容,常用的限制元素如 ul、select等同理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容