国瑞个人博客
首页 > Vue > Vue中封装modal模态框组件

Vue中封装modal模态框组件

Vue中封装modal模态框组件

 2018年07月23日 作者: 国瑞个人博客 867次浏览

Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动

html部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style type="text/css">
        .demo {
            width: 300px;
            height: 200px;
            border: 1px solid red;
        }
        span {
            width: 100%;
            height: 50px;
            display: block;

        }

        input {
            width: 100px;
            height: 50px;
            background: #ccc;
        }
    </style>
</head>

<body>



    <div id="app">
        <!-- 不写提醒 -->
        <curtom-component>
        </curtom-component>
        <!-- 写了提醒的 -->

        <curtom-component modal-title="提醒" @on-ok="ok" @on-cancel="cancel">
        </curtom-component>

        <curtom-component modal-title="提醒" @on-ok="ok">
            <ul slot="content">
                <li v-for="item in list">{{item}}</li>
            </ul>
            <div slot="footer">
                <strong>确定</strong>
                <strong>返回</strong>
                <strong>重置</strong>
            </div>
        </curtom-component>

        <curtom-component @on-cancel="cancel">

        </curtom-component>


    </div>
</body>

</html>

javascript代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.min.js"></script>
<script type="text/javascript">
    //定制模板
    Vue.component('curtom-component', {
        props: {
            modalTitle: {
                type: String,
                default: '这是一个模态框'
            }
        },
        data() {
            return {
                message: "我是子组件的数据"
            }
        },
        template: `
            <div class="demo">
            <h3>{{modalTitle}}</h3>
            <span>
            <slot name="content">
                默认的内容
            </slot>
            </span>
            <slot name="footer">
                <input type="button" name="" value="确定" @click="okHandle">
                <input type="button" name="" value="取消" @click="cancelHandle">
            </slot>
            </div>
        `,
        methods: {
            okHandle() {
                alert("子组件触发");
                this.$emit("on-ok");
            },
            cancelHandle() {
                alert("子组件触发cancel");

                this.$emit("on-cancel");

            }
        }
    })

    var list = [..."爱前端"];


    new Vue({
        el: "#app",
        data: {
            list: list
        },
        methods: {
            ok() {
                alert('改变div样式');
            },
            cancel() {
                alert('退出了');
            }
        }
    })
</script>

封装组件

每个组件会提供一些标准且简单的应用接口,允许使用者设置和调整参数和属性。

可以将不同来源的多个组件有机地结合在一起,快速构成一个符合实际需要的复杂(大型)应用程序。

组件的主要特点:

重用性 --能够公用和通用

可定制性--可设置参数和属性

高内聚性--功能完整

互操作性--多组件协同工作

Vue组件的API来自三部分:

props参数 传递数据给组件

slot定制模板 外部模板混合子组件模板

event自定义事件 监控子组件交互状态

百度已收录

点击快速分享:

以上就是国瑞前端个人博客带来的是《Vue中封装modal模态框组件》,感谢您的观看!

如果没有特殊的说明,本文即为国瑞前端博客原创(www.huanggr.cn),欢迎读者转载并保留本站版权!https://www.huanggr.cn/249.html

「专业前端博客,如果觉得我的文章对您有用,请帮助本站成长」

赞( 36 ) 打赏

谢谢你请我吃鸡腿*^_^*

支付宝
微信
36

谢谢你请我吃鸡腿*^_^*

支付宝
微信
标签:

上一篇:

下一篇:

相关文章:

共有 0 条评论

博客简介

国瑞个人博客: https://www.huanggr.cn/,我们关注Web前端开发技术,web前端开发,移动前端开发,前端资讯,同时分享前端资源和工具等,期待你的参与,了解更多..

博主独立研发主题:

本站唯一QQ群

加入国瑞个人博客QQ群

本群为学习探讨群,主要和前端相关,欢迎广大前端(抱有学习目的均可)爱好者加入!广告请勿添加!

升级版本

web前端开发博客,基于vue脚手架制作的前端博客正在制作中,尽情期待,目前示例的代码位于此处

最新版本(尽请期待)-web前端开发博客

精彩评论

本站主要提供服务

二年web前端开发博客,本站专注提供web资源下载,技术问题解答,经验分享,也提供新手的web技术指导,二年前端个人博客,期待你的加入!

站点统计

  • 文章总数: 269 篇
  • 草稿数目: 50 篇
  • 分类数目: 26 个
  • 页面总数: 16 个
  • 评论总数: 223 条
  • 链接总数: 10 个
  • 标签总数: 104 个
  • 建站时间: 808 天
  • 注册用户: 659 人
  • 访问总量: 8785364 次
  • 最近更新: 2019年7月15日
-->