如果你想在调试器中,直接使用 $$vm_popup
或者 $$vm_popup_last
来直接获取所有的name为popup的引用或者最后一个创建的name为popup类型组件的引用
//组件foo定义
{
...
name:"foo"
}
//使用组件foo
{
...
template:`
<foo :data="user"></foo>
<foo :data="developer"></foo>
`
}
//此时在控制台
$vm_foo
//[foo,foo]所有name为foo的实例的引用
$vm_foo_last
//foo最后一个实例的引用
//实现
let mixin = {
mounted(){
let name = this.$options.name;
if(!name) {
return;
}
let namekey = "$$vm_"+name;
let namekey_last = "$$vm__"+name;
let pack = window[namekey];
if(pack) {
//是数组
if(pack.length && pack.push && pack.forEach) {
window[namekey].push(this)
}else{
window[namekey] = [pack,this];
}
}else{
window[namekey] = this;
}
window[namekey_last] = this;
}
}