美文网首页Vue 从入门到进阶
Vue 组件化的视图库

Vue 组件化的视图库

作者: yibuyisheng | 来源:发表于2018-03-08 23:10 被阅读50次

Vue 根组件实例

Vue 是一个基于组件的视图库。在一个页面上,可以形成多颗组件树,每棵树的根组件都会绑定到一个 DOM 元素。

比如页面上有两个 div

<div id="app1"></div>
<div id="app2"></div>

就可以针对这两个 DOM 元素实例化两个 Vue 根组件实例:

import Vue, { ComponentOptions } from 'vue';

const App1: ComponentOptions<Vue> = {
    el: '#app1',
    template: '<div>app1</div>'
};

const App2: ComponentOptions<Vue> = {
    el: '#app2',
    template: '<div>app2</div>'
};

new Vue(App1);
new Vue(App2);

执行完之后的 DOM 结构为:

<div>app1</div>
<div>app2</div>

有关 ComponentOptions 等详细内容,在后续文章中会逐步讲到,此处只需要知道 App1 和 App2 是两个组件(配置)。

注意:对应 Vue 根组件实例的 DOM 元素之间不能存在父子/祖孙关系。比如上例中的 #app2 节点不能是 #app1 的子孙节点。

Vue 组件树

有了 Vue 根组件之后,就可以在根组件上挂载无限层级的 Vue 组件了:

<div id="app"></div>
import Vue, { ComponentOptions } from 'vue';

const Child2: ComponentOptions<Vue> = {
    template: '<div id="child2">child2</div>'
};
Vue.component('Child2', Child2);

const Child1: ComponentOptions<Vue> = {
    template: '<div id="child1">child1 <Child2></Child2></div>'
};
Vue.component('Child1', Child1);

const App2: ComponentOptions<Vue> = {
    el: '#app2',
    template: '<Child1></Child1>'
};

new Vue(App);

执行完之后的 DOM 结构为:

<div id="child1">child1 <div id="child2">child2</div></div>

其中, Vue.component 用于在 Vue 内部注册组件。

注意:非根组件都不要指定 el

页面分块组件化能力的优势

  • 视图模块之间绝对分离,互不影响。
  • 支持对已有系统的逐步重构。

相关文章

  • Vue 组件化的视图库

    Vue 根组件实例 Vue 是一个基于组件的视图库。在一个页面上,可以形成多颗组件树,每棵树的根组件都会绑定到一个...

  • vue原理

    组件化 数据驱动视图传统组件,只是静态的渲染,更行还是依赖于操作DOM数据驱动视图--Vue(MVVM)数据驱动视...

  • Vue组件和父子组件

    【一】Vue组件化 创建组件构造器对象Vue.extend() 创建组件构造器const cpnc = Vue.e...

  • fabric.js绘图库在使用vue项目中使用

    FabricJS是一个优秀的canvas 绘图库,今天推荐一个好用的vue-fabric组件库,在vue中是如何使...

  • Vue.js的组件化思想 —上

    一、Vue中的组件 Vue视图层的灵魂 — 组件化 组件(Component)是 Vue.js 最强大的功能之一...

  • 大话大前端时代(一) —— Vue 与 iOS 的组件化

    大话大前端时代(一) —— Vue 与 iOS 的组件化 大话大前端时代(一) —— Vue 与 iOS 的组件化

  • Vue组件化

    定义Vue组件化 什么是组件化:组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的...

  • (15)打鸡儿教你Vue.js

    组件化vue.js 组件单向绑定组件双向绑定组件单次绑定 创建组件构造器注册组件使用组件 Vue.extend()...

  • vue-5

    组件(可复用的vue实例) 注册组件必须在Vue实例化之前全局组件(跨vue实例)组件的data选项必须是一个函数...

  • vue

    1、什么是组件化、有什么好处、vue如何创建组件、vue组件之间如何通信 什么是组件化。任何一个页面我们都可以抽象...

网友评论

    本文标题:Vue 组件化的视图库

    本文链接:https://www.haomeiwen.com/subject/apuufftx.html