Vue extends 传入构造函数

news/2024/5/19 2:13:47 标签: extends, 构造函数

今天同事问我"官网上说 extends 可以传构造函数, 知不知道怎么写?"

查阅了一下官网, 发现对此的介绍仅限于"可以是一个构造函数", 此外并没有案例
于是在此写下 demo, 减轻同事摸脑壳的烦恼


官网介绍

允许声明扩展另一个组件 (可以是一个简单的选项对象或构造函数)。这主要是为了便于扩展单文件组件。

extends 用于扩展组件, 用法与 mixins 相似, 都是在一个组件中传入扩展的内容

extends 与 mixins 的差别在于

  • extends 只能传入 1 个扩展内容(mixins 通过数组格式, 可以传入多个)
  • 除了 mixins 也接受的 Object 类型(严格来说是 Object 组成的数组), extends 还能接受构造函数类型

demo

既然说好是构造函数, 那格式肯定是这样的

{
	extends: new function() {
		this.name = value
	}
}

反复几次试验后, 发现 name 指代组件的属性名, value 指代该属性的值

实际应用大致如下例所示

var CompA = {
	extends: new function() {
		this.template = "<div>{{e}}, {{c}}</div>"
		this.data = function() {
			return {
				e: "来自 extends 传入的构造函数中的数据"
			}
		}
		this.created = function() {
			console.log("来自 extends 传入的构造函数中的 created")
		}
	},
	data: function() {
		return {
			c: "来自 CompA 自己的数据"
		}
	},
	created() {
		console.log("来自 CompA 自己的 created")
	},
};

当然这种小问题, 大佬是一眼识破的, 记录下来仅为防止笔者一时失忆

end


http://www.niftyadmin.cn/n/913462.html

相关文章

Qt warning: use of old-style cast

原代码 qint64 r udpSocket.readDatagram(buff, 1024, &addr, &port); QString msg QString::fromUtf8(buff, (int)r); 解决方法&#xff0c;采用static_cast qint64 r udpSocket.readDatagram(buff, 1024, &addr, &port); QString msg QString::fromUt…

《山海经〉〉 儿时梦寐以求的书

http://www.booksto.com/bbs/forumdisplay.php?fid118&page1转载于:https://www.cnblogs.com/redfox241/archive/2009/04/15/1436588.html

css 自定义属性

css 中使用 自定义属性必须通过 --x 的格式申明用 var(–x) 调用:root{} 下是全局声明块下是局域自定义属性可以覆盖或继承 /* -- 是不能少的 */:root {--swq: #f00; }body {--swq: #0f0; }h1 {--swq: #00f;color: var(--swq); /* #00f */ }js 中使用 css 的自定义属性可以通…

C. parent关键词

转载于:https://www.cnblogs.com/youyuanjuyou/p/8120917.html

深度学习性能提升方法

http://www.52ml.net/19252.html 这篇文章对深度学习性能提升的总结很赞转载于:https://www.cnblogs.com/raul313/p/8134584.html

js 类数组转数组

对 js 稍有了解的朋友应该知道, js 里有一种叫做"类数组"的东西 如字面意思, 是一些类似数组的数据类型 为什么用"一些"呢? 因为类数组不是一种数据类型, 是好几种类型的统称, 如:NodeList, Set, Arguments 都是类数组 类数组有数组的一部分特性, 而不是…

JSR-133:JavaTM内存模型与线程规范

http://ifeve.com/wp-content/uploads/2014/03/JSR133%E4%B8%AD%E6%96%87%E7%89%881.pdf

Ubuntu 9.04

Ubuntu 是一个完全基于 Linux 的操作系统 &#xff0c;它不但免费&#xff0c;而且有专业人员和业余爱好者共同为其提供技术支持。爱好者的数量是很大的&#xff0c;我们希望你也能加入&#xff01; Ubuntu 包括超过一万六千种软件&#xff0c;但其核心桌面组件的大小不超过一…