Skip to content

[vue] 说说你对vue的extend(构造器)的理解,它主要是用来做什么的? #329

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

[vue] 说说你对vue的extend(构造器)的理解,它主要是用来做什么的?

Activity

getanimation

getanimation commented on Jul 15, 2019

@getanimation

构建一个组件和vue.components注册组件一起使用

mydaoyuan

mydaoyuan commented on Mar 14, 2020

@mydaoyuan

extend的作用是继承当前的Vue类,传入一个extendOption生成一个新的构造函数。在extend的时候会进行mergeOption,融合Vue原型上的baseOption,所以extend出来的子类也能使用v-model、keep-alive等全局性的组件。

作用是生成组件类。在挂载全局组件和设置了components属性的时候会使用到。在生成DOM的时候会new 实例化挂载。

radio-qq

radio-qq commented on Jan 2, 2021

@radio-qq

extend:创建、复用组件,使用extend时,data选项必须是函数

sc950828

sc950828 commented on Sep 23, 2022

@sc950828

使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。
需要注意 data 选项是特例,它必须是函数

Cai-zhiji

Cai-zhiji commented on Jul 7, 2023

@Cai-zhiji

在Vue中,Vue.extend是一个构造器,用于创建一个可复用的Vue组件构造函数。

创建组件构造函数

使用Vue.extend可以创建一个组件构造函数,该构造函数可以用于生成多个具有相同配置的组件实例。这样可以提高组件的复用性和可扩展性。

动态创建组件

Vue.extend允许你在运行时动态创建组件。可以根据不同的条件或需要,通过组件构造函数创建新的组件实例。

组件继承和扩展

`Vue.extend允许你继承现有的组件构造函数,并对其进行扩展。这样可以创建一个新的组件,拥有父组件的特性并添加自己的定制逻辑。

// 创建弹窗组件构造函数
const Dialog = Vue.extend({
  template: `
    <div class="dialog">
      <h2>{{ title }}</h2>
      <p>{{ content }}</p>
    </div>
  `,
  data() {
    return {
      title: 'Dialog',
      content: 'This is a dialog.',
    };
  },
});

// 在需要的时候创建弹窗实例
const dialogInstance = new Dialog();
dialogInstance.$mount(); // 手动挂载到DOM上
document.body.appendChild(dialogInstance.$el); // 将弹窗实例的根元素添加到DOM中
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @haizhilin2013@mydaoyuan@sc950828@getanimation@radio-qq

        Issue actions

          [vue] 说说你对vue的extend(构造器)的理解,它主要是用来做什么的? · Issue #329 · haizlin/fe-interview