vue 高级api (extned)

前言

  vue.extend是vue的一个全局的api,它的作用是创建一个vue的子例。其实和vue.compoent一样,都是创建一个组件。但是区别是vue.component创建的组件,是挂载在vue实例内,而vue实例挂载在dom节点#app。所以通过vue.component创建的组件都存在于#app内。而vue.extend创建的组件可以向vue实例一样,通过$mount自由的选择挂载位置。相当于一个独立的组件

使用场景

  1.假定我想定义一个全局的提示toast组件,并且不想让她挂载在#app之下。

  2.vue.extend(options)参数中接受接受一个template属性,可以动态的定义组件。这个在vue.compoent中其实也可以实现

如何使用

  值得一提的是$mount不是将组件挂载在dom节点下,而是替换指定的节点

//创建一个子例构造函数
const vueC= Vue.extend({
  template:"<div>测试值</div>",
  ...//一些component选项
})

//new子例实例,并通过$mount将其挂载在指定的节点上
new vueC().$mount("#app2")

//vue.compoent()可以接受一个子例构造函数
vue.component('compoent-id',vueC)

  

posted @ 2022-04-16 14:11  眼里有激光  阅读(135)  评论(0编辑  收藏  举报