vue窗组件的实现示例代码

时间:2013.05.04 发布人:zhou**n121584

vue窗组件的实现示例代码

已解决问题

谷歌zhou**n121584用户在2013.05.04提交了关于“末世之黑暗召唤师vue窗组件的实现示例代码”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-26T18:09:58。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:tigerlyj  

vue窗组件的样洋系司子

我们先看一下,我们要实现出来的窗组件长什么样子:

呐,我们要用vue组件实现的窗就是这个样子,跟我们用js插件实现的效果一样,来自下面我们开始讲述怎么实现一个通用的vue窗组件。

实现vue窗组件需要的知识

是vue组件,当然最基础的是vue的知识,我假设大家是有一定vue功底的,然后你还需要了解:

1、vue的事件系统,vue组件间的校你绝父吧阿龙思贵永单项**流,props从父组件向子组件传递**,子组件通过事件emit向父组件传递事件,父组件通过on**子组件的事件来处理具体事务。

2、具名插槽slot,通过name属性来接收不同的父组件传递过来的内容,具名插槽接收两个**,一是窗的标题,二是窗的显示内容。

vue窗组件的实现代码

vue窗的具体实现代码采用单页面组件的形式写的,具体代点务统点互固信标游班歌码如下:

<template><d问答ivclass='md-cont'v-show='showstate'><divcla丝错画元食身解龙位真ss='md-wrapper'><divclass='md-title'><slotname='tlt与零击胜美格名景银活'>标题</slot></div><divclass='md-text'><slotname='text'>这里是框内容</slot></div><divclass='footer'><divv-if='type占另=="confirm识蒸湖真纪正功研行拿的"'@click='适得破城东款己tocancel'class='md-btn'>取苏消</div><divclass='md-btn'@click='took'>确定</div></div></div></div></template><script>exportdefault{name:'modal',props:['type','showstate'],methods:{tocancel:function(){this.$emit('tocancel');},took:function(){this.$emit('took');}}}</script><s倍tylescop西ed>.md-cont{position求:fixed;left:0;right:0;t飞前具也顺全品培景角有op:0;bottom:0;z-index:500;backgro关委und:rgba(0,0,0,0.3);text-align:center;overflow:hidden;wh缺历固时械具苦随ite-spac何城读之果e:nowrap;}.md-cont:after{content:"";display:inline-block;width:0;height:100%;visibility:hidden;vertical-ali云奏gn:middle;}.md-wrapper{display:inline-block;vertical-align:middle;background:#fff;color:#333333;fon律吃反义系石果t-size:0.34rem;padding-top:0.2rem;border-radius:0.1rem;max-width:100%;}.md-title{font-size:0.34rem;text-align:center;line-height:0.6rem;}.md-text{font-size:0.25rem;text-align:center;line-height:0.4rem;padding:0.2rem0.5rem;}.footer{display:flex;border-top:0.01remsolid#E5E5E5;line-height:0.88rem;color:#488BF1;font-size:0.32rem;}.md-btn{flex:1;}.md-btn+.md-btn{border-left:0.01remsolid#E5E5E5;}</style>

组件中模版代码很简单,其中主要的就是两个具名插槽slot;两个按钮触发两个事件,这两个事件通过$emit上传到父组件。根据父组件传递过来的type属性来决定是否显示取消按钮。

对于具名插槽和$emit事件系统不理解的可以去vue官网查看,这里不多做赘述了。

vue窗组件的使用

在父组件里面使用窗组件也是很方便的,如果你是bootstrap的使用者或者爱好宅你会对这种使用方式感到熟悉和亲切。

下面我展示使用代码:

<template><div><divclass='aft-box'><divclass='aft-flexaft-pd'><divclass='aft-btn'@click='alerts'>alert</div></div><divclass='aft-flexaft-pd'><divclass='aft-btnaft-blue'@click='confirms'>confirm</div></div></div><Modaltype='alert'@took='okfall':showstate='showa'><spanslot='tlt'>提示</span><divslot='text'>我是一个alert提示窗</div></Modal><Modaltype='confirm'@took='okfall2'@tocancel='cancelfall':showstate='showc'><spanslot='tlt'>确认</span><divslot='text'>{{msg}}</div></Modal></div></template><script>importModalfrom'./modal'exportdefault{name:'container',components:{Modal},data(){return{showa:false,showc:false,msg:"我有两个按钮,是confirm确认窗"}},methods:{alerts(){this.showa=true;},confirms(){this.showc=true;this.msg="我有两个按钮,是confirm确认窗";},okfall(){this.showa=false;},okfall2(){this.msg="点击了确认按钮,2秒后窗关闭";setTimeout(()=>{this.showc=false;},2000);},cancelfall(){this.showc=false;}}}</script><style>.aft-box{display:flex;line-height:0.65rem;font-size:0.26rem;color:#333;padding:0.5rem0;}.aft-flex{flex:1;}.aft-pd{padding:0.5rem0.1rem;}.aft-btn{display:block;line-height:0.88rem;text-align:Center;color:#fff;border-radius:0.12rem;background:#FFB63B;}.aft-blue{background:#488BF1;}</style>

这里我们需要先通过import引入modal窗组件,再在父组件里面通过components属性声明使用此组件。

然后在template模版中通过Modal标签使用窗组件;

在窗组件上通过type来设置窗的特性;

通过:showstate属性来标识窗的打开和关闭;

通过@took来设置确定按钮点击后的操作;

通过@tocancel来确定取消按钮点击后的操作;

在Modal标签中通过内容上的slot属性来标识内容是标题还是显示内容,slot='tlt'中的文字将会作为窗标题显示,slot='text'的文字将会作为窗的正文显示;

在这里你也可以通过{{msg}}插值表达式的形式来把内容和父组件的**绑定到一块;

在script中我们通过data中的两个变量showa和showb来标识框的打开和关闭;

页面中的按钮事件中通过设置showa和showb的值来打开和关闭窗。

vue窗组件结语

这样一个vue窗组件就算完成了,使用简单灵活,哪里需要引入到里面就可以使用了,而且其中的内容和标题可以自由设置,而且vue窗组件相对于js窗插件来说实现起来更简单,更清晰。只是我们需要很好的掌握vue提供的特性以及能够按照vue所在的思想框架进行思考。而vue开中的重要思想就是:我们操作**,页面变化dom操作交给vue来处理。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:详解基于Vue2.0实现的移动端窗(Alert,Confirm,Toast)组件以v-model与promise两种方式实现vue窗组件vue的toast窗组件实例详解vue窗组件使用方法vue窗消息组件的使用方法vue.extend实现alert模态框窗组件使用Vue组件实现一个简单窗效果很棒的vue窗组件关于vue.js窗组件的知识点总结