Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
haizhilin2013 opened this issue Jun 20, 2019 · 5 comments
Labels
vue vue

Comments

@haizhilin2013
Copy link
Collaborator

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

@haizhilin2013 haizhilin2013 added the vue vue label Jun 20, 2019
@getanimation
Copy link

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

@mydaoyuan
Copy link

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

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

@qq-radio
Copy link

qq-radio commented Jan 2, 2021

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

@sc950828
Copy link

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

@Cai-zhiji
Copy link

Cai-zhiji commented Jul 7, 2023

在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
Labels
vue vue
Projects
None yet
Development

No branches or pull requests

6 participants