码迷,mamicode.com
首页 > 其他好文 > 详细

vue 自定义模版组件

时间:2018-01-07 12:02:34      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:-o   button   app   com   cli   name   ring   log   监控   

vue的组件可以自定义内容,属性 又有slot作配合 可以做出很多自定义模版

 

例子

 

<body>
<div id="app">
<m-modal modal-title="提醒" @on-ok="ok"></m-modal>
<m-modal>
<ul slot="modal-content">
<li v-for="item of list">{{item}}</li>
</ul>

<div slot="modal-footer">
<span>确定</span>
<span>重置</span>
<span>返回</span>
</div>
</m-modal>
<m-modal @on-cancel="cancel"></m-modal>
</div>
<script>
/*
设置的props:
modalTitle 提醒信息 默认为 ‘这是一个模态框‘

定制模板:
slot为modal-content 定制提醒信息模板
slot为modal-footer 定制底部模板

监控子组件状态变化:
事件名on-ok 点击确定触发
事件名on-cancel 点击取消触发
*/

Vue.component("m-modal",{
props:{
modalTitle:{
type:String,
default:‘这是一个模态框‘
}
},
template:`
<div class="modal">
<div class="modal-header">
<h4>{{modalTitle}}</h4>
</div>
<div class="modal-content">
<div>
<slot name="modal-content">在这里添加内容</slot>
</div>
</div>
<div class="modal-footer">
<slot name="modal-footer">
<input class="btn blue" type="button" value="确定" @click="okHandle" />
<input class="btn" type="button" value="取消" @click="cancelHandle" />
</slot>
 
</div>
</div>
`,
methods:{
okHandle(){
//通知父组件 点了确定
alert("我触发了")
this.$emit("on-ok");
},
cancelHandle(){
alert(‘取消了‘);
this.$emit(‘on-cancel‘)
}
}
});

var list = [...‘妙味课堂‘];

new Vue({
el:"#app",
data:{
list:list
},
methods:{
ok:function (){
alert("改变一个div的样式")
},
cancel:function (){
alert("取消了,干别的事情")
}
}
});

</script>
</body>

vue 自定义模版组件

标签:-o   button   app   com   cli   name   ring   log   监控   

原文地址:https://www.cnblogs.com/blccy/p/8223961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!