Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法在VueJS中通过mixin继承模板_Javascript_Vue.js - Fatal编程技术网

Javascript 有没有办法在VueJS中通过mixin继承模板

Javascript 有没有办法在VueJS中通过mixin继承模板,javascript,vue.js,Javascript,Vue.js,有人知道如何用模板继承mixin?或者如何从mixin中以数字方式注入元素或组件 编辑: 我不想修改问候语组件,我有两个mixin:404Mixin,它添加了一个方法raise404(),并显示了一个100%的层和loaderxin,其中loading()方法在角落中显示了一个微调器。我可以继承他们的方法,但我必须在我想要使用的每个组件中复制html 谢谢 mixin={ 模板:“{{foo}”, 数据(){ 返回{ 福:你好, }; }, } //这应该是你好世界 Vue.组件(“问候语”{

有人知道如何用模板继承
mixin
?或者如何从
mixin
中以数字方式注入元素或组件

编辑: 我不想修改问候语组件,我有两个mixin:404Mixin,它添加了一个方法raise404(),并显示了一个100%的层和loaderxin,其中loading()方法在角落中显示了一个微调器。我可以继承他们的方法,但我必须在我想要使用的每个组件中复制html

谢谢

mixin={
模板:“{{foo}

”, 数据(){ 返回{ 福:你好, }; }, } //这应该是你好

世界

Vue.组件(“问候语”{ mixin:[mixin], 模板:“世界!

” }); var vm=新的Vue({ el:“#应用程序” });

您不能像示例中那样“继承”mixin模板,如果可能的话,必须有一种标准化的方法来合并模板

既然您真正想要做的似乎就是继承模板,为什么不将组件组合与插槽一起使用呢

Vue.component('not-found'{
模板:“#未找到”,
方法:{
doSomethingSpecial(){
警惕(“你好”);
},
},
});
新Vue({
el:“#应用程序”,
数据(){
返回{
notFoundVisible:错误,
};
},
});
。找不到{
背景色:白色;
文本对齐:居中;
字体大小:30px;
位置:固定;
左:0;
排名:0;
右:0;
底部:0;
}

404找不到
找不到资源
点击我
做点特别的事

多年后,我可以想象一个优雅的解决方案,也许使用类、typescript或在mixin中创建组件super的注释会更优雅,但现在,问题部分解决了

GreetingMixin={
数据(){
返回{
问候语:“你好”,
};
},
提供(){return{child:this}},
组成部分:{
超级:{
注入:['child'],
模板:“{child.greeting}}”,
}
},
}
//这应该是Hello世界
Vue.组件(“welcomeWorld”{
Mixin:[问候Mixin],
模板:“世界!”,
});
//这应该是Hiali
Vue.component('welcomeName'{
Mixin:[问候Mixin],
道具:[“名称”],
已创建(){this.greeting=“Hi”},
模板:“{name}}”,
});
//这应该是HelloWorld
Vue.组件(“welcomeH1”{
Mixin:[问候Mixin],
道具:[“名称”],
模板:“{name}}”,
});
var vm=新的Vue({
el:“#应用程序”
});
.blue{
颜色:蓝色
}


您能解释一下您实际想要实现的目标吗?您的示例代码似乎工作正常。我想继承mixin模板,我想打印
你好世界

,我有一个更复杂的代码,但我创建了示例代码来表示问题。好吧,至少乍一看,您缺少了一个先决条件插槽。是的,我有类似的代码,但我在使用$refs之前使用了加载方法,为了让它发挥作用,我必须使用道具和自定义方法,然后它变得太乱,然后我决定使用mixin,我想知道它是否可以更透明。我真的不知道添加带有
alert()
的组件如何帮助避免页面方面的html重复/干涸,它可能是开槽的,也可能是无槽的。这看起来很有用,但我不明白它是如何工作的,为什么工作的。你能提供一些参考或解释吗。。。。它实际上是在创建“问候语”使用的本地组件吗?当呈现“超级”模板时,来自“问候”的成员是否可用。。。好的,做了一个实验。。。他们会的,我会用一个扩展的示例编辑你的答案。对不起,你的版本不正确,它对你的测试有效,但你不应该引用来自父级的子属性,你可以引用的是来自子级的父级属性,请参阅我的编辑和更多子级示例。这是对Ali解决方案的引用: