首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue.extend是用来做什么的?

Vue.extend是用来做什么的?
EN

Stack Overflow用户
提问于 2016-11-21 19:35:21
回答 5查看 45.1K关注 0票数 76

这是一个很简单的问题,但是我没有从文档中得到我需要的答案。我正处于学习Vue.js的过程中,我真的不明白Vue.extend在哪里。我得到了Vue.component,但我看不出Vue.extend能做什么,而Vue.component不能做什么,它只是1.0的遗留特性吗?如果没有,那么它在Vue 2.0中有什么用处呢?

EN

回答 5

Stack Overflow用户

发布于 2017-04-20 10:45:57

他们在以前的Vuejs.org站点上的指南中有一个文档。

从vuejs/Vuejs.org 0.10.6版本的http://optimizely.github.io/vuejs.org/guide/composition.html派生而来。

了解Vue.extend()Vue.component()之间的区别非常重要。因为Vue本身是一个构造函数,所以Vue.extend()是一个类继承方法。它的任务是创建Vue的子类并返回构造函数。另一方面,Vue.component()是一种类似于Vue.directive()Vue.filter()资产注册方法。它的任务是将给定的构造函数与字符串ID相关联,以便Vue.js可以在模板中提取它。当直接将选项传递给Vue.component()时,它会在幕后调用Vue.extend()

Vue.js支持两种不同的应用编程接口范例:基于类的、命令式的、主干样式的应用编程接口,以及基于标记的、声明性的、Web组件样式的应用编程接口。如果您感到困惑,请考虑如何使用new Image()<img>标记创建图像元素。每种方法都有其自身的用处,Vue.js试图提供这两种方法以获得最大的灵活性。

票数 62
EN

Stack Overflow用户

发布于 2016-11-21 20:15:40

我认为混淆是因为extend和component是紧密相连的。要在内部创建组件Vue调用extend:

代码语言:javascript
运行
复制
// register an options object (automatically call Vue.extend)
Vue.component('my-component', { /* ... */ })

因此,您可以使用extend挂载基础Vue构造函数(组件构造函数)的子类:https://vuejs.org/v2/api/#Vue-extend

然而,你不太可能遇到或需要沿着这条路走下去。相反,您将使用组件来获得可以在应用程序中轻松引用的命名子类。

因此,Extend并不是真正的“遗留”特性,它是Vue组件的核心,但组件提供的附加功能使它们成为您的默认工作方式。

票数 33
EN

Stack Overflow用户

发布于 2018-10-12 05:00:53

除了提供的答案之外,如果您正在使用TypeScript,还有一个直接调用Vue.extend()的实际用例。

在大多数情况下,建议在需要时从其他文件导入零部件定义,而不是将其全局注册到Vue.component()。它将事情组织在更大的项目中,并使跟踪问题变得更容易。

有了正确的库,TypeScript可以查看您的组件定义,并确定组件在初始化时的类型,这意味着它可以检查您定义的函数,看看它们是否有意义(例如,如果您引用this.foo,则实际上存在一个属性、数据字段、计算值或名为foo的方法)。如果您使用Vue.component(),它将能够做到这一点,但如果您使用另一种使组件可用的典型方法,即导出对象文字,则无法做到这一点。

但是,另一种选择是导出包装在Vue.extend()中的组件定义。然后,TypeScript将能够将其识别为Vue组件,并相应地运行其类型检查,但您不必放弃导出组件而不是全局注册组件的最佳实践模式。

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40719200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档