新学vue,参考别人封装弹出层组件。好用!
1.你需要先建一个弹出框的模板:
//首先创建一个mack.vue
{{text.title.trim()}}
{{text.mesg.trim()}}
{{text.btn.cancelVal}}
{{text.btn./confirm/iVal}}
//写js
//css
.mack {
position: fixed;
width: 100%;
height: 100%;
overflow: hidden;
top: 0;
left: 0;
background: rgba(21, 21, 21, 0.7);
.font_b {
font-size: 14/50rem;
color: #231a2f;
}
.font_s {
font-size: 12/50rem;
color: #655a72;
}
.borderTop {
border-top: 1/50rem solid #e4e4e4;
}
.mackWeb {
background: #ffffff;
width: 300/50rem;
min-width: 300/50rem;
margin: auto;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
.title {
text-align: center;
padding: 15/50rem 15/50rem 0 15/50rem;
}
.mesg {
padding: 15/50rem;
text-align: center;
}
.footb {
display: inline-table;
width: 100%;
.borderlf {
border-right: 1/50rem solid #e4e4e4;
}
div {
display: table-cell;
box-sizing: border-box;
text-align: center;
padding: 10/50rem 0;
}
}
}
}
2.接着你需要一个js:mackjs.js
import Vue from 'vue';
import confirm from './mack';
let confirmConstructor = Vue.extend(/confirm/i);
let theConfirm = function (text) {
return new Promise((res, rej) => { //promise封装,ok执行resolve,no执行rejectlet
let confirmDom = new confirmConstructor({
el: document.createElement('div')
})
document.body.appendChild(/confirm/iDom.$el); //new一个对象,然后插入body里面
/confirm/iDom.text = Object.assing( /confirm/iDom.text,text); //为了使/confirm/i的扩展性更强,这个采用对象的方式传入,所有的字段都可以根据需求自定义
/confirm/iDom.ok = function () {
res()
/confirm/iDom.isShow = false
}
/confirm/iDom.close = function () {
rej()
/confirm/iDom.isShow = false
}
})
}
export default the/confirm/i;
//暴露出去,别忘记挂载到vue的原型上
// => 在main.js里面先引入 import theConfirm from './components//confirm/i//confirm/i.js'
// => 再挂载 Vue.prototype.$confirm = the/confirm/i;
//在需要的地方直接用以下方法调用即可:
// this.$confirm({
// type:'提示',
// msg:'是否删除这条信息?',
// btn:{
// ok:'yes',
// no:'no'
// }
// }).then(() => {
// console.log('ok')
// })
// .catch(() => {
// console.log('no')
// })
-3.你接着需要在main.js导入这个文件
import macksjs from './assets/mackjs' Vue.prototype.$confirm= macksjs ;
-4.最后在你需要引入的vue文件中直接调用就好了
methods:{
deleteaas() {
this.$confirm({
title: "addd",
mesg: "您确定不再关注该客户吗?",
cntMsg: '你好',
cancelValStyle:{color:'red'},
btn: {
/confirm/iVal: "确a定",
cancelVal: "取a消"
}
})
.then(() => {
console.log("yes");
//点击确定之后的处理
})
.catch(() => {
console.log("no");
});
}
}
导入
总结
以上所述是小编给大家介绍的vue弹出框组件封装实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!



