写在前面
之前写过一篇关于vue实现dialog会话框组件的文章//www.jb51.net/article/139218.htm
讲到了如何实现一个vue对话框组件,其中涉及到了父组件和子组件的通信,这个不用多说,看我之前的文章就能明白,文章最后也说到了,我们可以使用slot插槽来编写组件,slot用来分发内容到子组件中,从而实现组件的高度复用,编写的组件更加灵活。
还是结合对话框的例子,使用slot来实现对话框组件
注册一个名叫dialog-tip的全局组件
Vue.component('dialog-tip', {
template: '#dialog-tip',
props:['dialogShow','message'],
data:function(){
return {
content:''
}
},
methods:{
}
});使用templete标签来定义这个组件
<template id="dialog-tip">
<div class="dialog_tip" v-if="dialogShow">
<div class="dialog_tip--mask"></div>
<div class="dialog_tip--content">
<div class="dialog_tip--content__txt">
<slot name="msg">请输入1-8000之间任意整数</slot>
</div>
<div class="dialog_tip--content__btns">
<slot>
<button class="btn">确定</button>
<button class="btn">重新输入</button>
<button class="btn">去注册</button>
</slot>
</div>
</div>
</div>
</template><template id="dialog-tip">
<div class="dialog_tip" v-if="dialogShow">
<div class="dialog_tip--mask"></div>
<div class="dialog_tip--content">
<div class="dialog_tip--content__txt">
<slot name="msg">请输入1-8000之间任意整数</slot>
</div>
<div class="dialog_tip--content__btns">
<slot>
<button class="btn">确定</button>
<button class="btn">重新输入</button>
<button class="btn">去注册</button>
</slot>
</div>
</div>
</div>
</template>
组件内容包括两部分 ,一个是提示内容,一个是button按钮,我们将要修改替换的内容使用slot包含起来,
这样父组件就可以分发内容到子组件里面了。
<div class="dialog_tip--content__txt">
<slot name="msg">请输入1-8000之间任意整数</slot>
</div>
<div class="dialog_tip--content__btns">
<slot>
<button class="btn">确定</button>
<button class="btn">重新输入</button>
<button class="btn">去注册</button>










