使用vue组件,将bootstrap模态框组件化并函数化展示的解决方案

引入

在写这篇文章前,我先说明我是一位高中生,对标题相关名词的使用及文章的粗陋,请见谅。写下这篇文章是为了记录我的喜悦,并分享一些个人经验。(好久没写文章了…)

这篇文章我要做以下的事:相信大家都用过经典样式库bootstrap,里的modal组件。必须承认,bootstrap好看,简单,能用,但是每次需要用到modal组件,都必须要在html里写冗长的代码,而且在需要复用组件时,都需要修改标题,内容,最后然后调用jquery的show函数展示模态框,这在高度组件化,高度复用的场景中是不优雅的。

当然我知道有很多vue的组件库可以给我用,可是,项目已经成形,我并不想为了为了一个modal大改前端的样式。


于是,我想将bootstrap的modal模态框,与vue的组件,高度集成起来,使html书写优雅,并可以一条代码触发展示。做成this.modal.show(title,content)的效果。


大幅的简化,完全原版的效果

submit:function(){if (this.canISubmit == false){this.modal.show('基础信息检验出错',`请检查各要素是否已经按要求填写准确!`)this.isLoading=falsereturn false}
...

在这里插入图片描述

实操:优雅的html

<body id="vue"><modal ref='modal'>modal>
body>

实操:vue组件

var BootModal =  {data: function () {return {title: '',content:'',}},template:`

{{content}}


按下ESC 来快捷解散该窗口。

`
,methods : {show:function(title,content){this.title = titlethis.content = content$('#submitModal').modal('show')}} }

vue父组件

var bulk = new Vue({el: '#vue',components: {'modal' : BootModal},mounted:function(){this.modal = this.$refs.modalthis.modal.show('我是标题','我是内容')//优雅调用,优雅展示
})

写在最后

正如前文所说,本人是实实在在的高中生,如果有任何纰漏,请务必联系我修正,多多谅解,谢谢!如果有更好方案,欢迎交流!
本文完全为个人原创,转载请注原处!
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部