提到extend 总是感觉有些熟悉,都是可以共用一些方法和属性这不就是mixin混入吗?其实两者还是有较大差别的,可以类比后端语言的继承和多态,extend类似继承,而mixin类似多态。

vue extend

vue.extend 返回的是一个 拓展实例构造器 也就是一个预设了部分选项的vue实例构造器。

https://www.cnblogs.com/xzybk/p/12786680.html
部分理解由此篇博客产出

使用extend之前首先先和混入mixin比较一下

mixin混入源码操作:

import { mergeOptions } from '../util/index'export function initMixin (Vue: GlobalAPI) {Vue.mixin = function (mixin: Object) {this.options = mergeOptions(this.options, mixin)return this}
}

mixin方法知识在初始化实例的时候传递配置对象的一个拓展
利用mergeOptions方法合并options

extend源码部分:


最后返回的Sub其实是一个构造函数,而且继承自Vue,也就是说extend方法返回的是Vue的一个子类。

而extend是使用基础Vue构造器,创建一个子类,参数是一个包含组件选择项的对象。

区别

mixin是对Vue类的options进行混入。
所有Vue的实例对象(全局混入)都会具备混入进来的配置行为。

extend是产生一个继承自Vue类的子类,只会影响这个子类的实例对象,不会对Vue类本身以及Vue类的实例对象产生影响。

vue:extend和mixin的区别相关推荐

  1. vue.extend与vue.component的区别和联系

    一味的闷头开发,却对基础概念缺乏理解,是个大坑... 查阅官网后现对自己的理解记录一下,用于日后复习巩固 Vue.extend({}) 简述:使用vue.extend返回一个子类构造函数,也就是预设部 ...

  2. [vue] vue和angular有什么区别呢?

    [vue] vue和angular有什么区别呢? Vue.js - 多样化的 JavaScript 框架 作为一个跨平台的,高度进步的框架,Vue 成为了许多需要创建单页应用程序的开发人员的首选.在用 ...

  3. 什么是Mixin?带你了解Vue中的Mixin混入

    什么是Mixin?本篇文章带大家了解一下Vue中的Mixin混入,介绍Mixin和Vuex的区别,Mixin的使用方法,希望对大家有所帮助! Vue框架现在基本上已经占据了前端的半壁江山,Vue的数据 ...

  4. 关于vue.extend的理解应用

    一.基本概念 Vue.extend( options ) 使用基础 Vue 构造器,创建一个"子类".参数是一个包含组件选项的对象. 一般,我们会用 Vue.extend 接收一个 ...

  5. 【Python】list 之 extend 和 append 的区别

    示例 a = [1, 2, '3', '1'] a.extend([1, 2]) print(a) a.append([1, 2]) print(a) 输出结果 [1, 2, '3', '1', 1, ...

  6. Vue.extend

    Vue.extend 1.传递的参数 Vue.extend({Object}),传递的是一个对象,这个对象包含template等,其实就是传递一个包含组件选项的对象. 他是属于Vue的全局API,用来 ...

  7. Vue利用Vue.extend()实现自定义弹出框

    运用场景:如果想实现一个类似于 window.alert() 提示组件要求像调用 JS 函数一样调用它,这时候Vue.extend + vm.$mount 组合就派上用场了. 简单介绍: Vue.ex ...

  8. Js 控件编写 继承:extend、mixin和plugin(一)

    Js 继承:extend.mixin和plugin(一) 简介: 我们编写前端控件时,需要给控件建立一个体系,面向对象是一个很合适的方式,但是JS本身对面向对象的一些概念支持偏弱,特别是继承的特性方面 ...

  9. vue.extend的问题

    问题场景 使用Vue.extend时 <template><div><div id="mount-point"></div>< ...

最新文章

  1. 132. Leetcode 461. 汉明距离 (位运算-汉明距离相关题目)
  2. 半透明AlphaBlend
  3. 【CodeForces - 485D】Maximum Value (枚举,用数组离散化,数学,取模运算,因子,筛法)
  4. 90后中国程序员“黑吃黑”博彩网站,半年获利256万,判刑11年半
  5. Centos中关闭tty以及禁止ipv6
  6. Netbeans 适配C/C++、JAVA防坑秘笈
  7. “别傻了,你不需要区块链!”
  8. java pdf在线阅读插件_JAVA实现在线查看PDF和office文档
  9. oracled update_oracle中要谨慎使用update交叉更新!
  10. 使用 IntraWeb (25) - 基本控件之 TIWRegion
  11. WebStorm中常用的快捷键及使用技巧
  12. 超细节的QT设计完整界面布局的流程-新手向
  13. 【见闻录系列】浅谈搜索系统与推荐系统的一点区别
  14. SpringCloud面试题及答案(2021年SpringCloud面试题大全带答案)
  15. 【Shell】Sed 删除、替换、增加字符串
  16. 全景图拍摄方式有哪些?全景图拍摄制作流程是什么?
  17. python随机生成彩色图像
  18. code block怎样导入整个文件夹_PR怎样大批量添加字幕? 协同AE。
  19. 2018年前端年度工作总结
  20. 论文参考文献格式(GB7714-2005)_庄启智_新浪博客

热门文章

  1. 2022高压电工考试题及答案
  2. C语言MD5源码及实例
  3. vista系统桌面上显示的是我的电脑还是计算机,怎样设置Windows Vista桌面
  4. es head插件安装_es-head安全登陆问题
  5. solidworks钣金折弯扣除表_钣金折弯人员必备知识
  6. 高校校园IPTV系统升级方案
  7. TSC 342E Pro标签打印机设置方法
  8. 计算机科学考研科目数一,注意啦!今年第一批!考研初试科目大改,十几所学校已发布公告!...
  9. Latex的使用——目录、参考文献
  10. C语言候老师,C语言的信息化教学