用vue实现各类弹出框组件
<h4 id="简单介绍一下vue中常用dialog组件的封装">简单介绍一下vue中常用dialog组件的封装: 实现动态传入内容,实现取消,确认等回调函数。 <h5 id="首先写一个基本的弹窗样式如上图所示">首先写一个基本的弹窗样式,如上图所示。 在需要用到弹窗的地方中引入组件: <pre class="prettyprint"><code class=" hljs python"><span class="hljs-keyword">import dialogBar <span class="hljs-keyword">from <span class="hljs-string">'./dialog.vue' <pre class="prettyprint"><code class=" hljs bash">components:{ <pre class="prettyprint"><code class=" hljs xml"><span class="hljs-tag"><<span class="hljs-title">dialog-bar><span class="hljs-tag"></<span class="hljs-title">dialog-bar> <h5 id="点击一个按钮显示弹窗并保证关闭弹窗后再次点击依旧显示">点击一个按钮显示弹窗,并保证关闭弹窗后再次点击依旧显示 在弹窗组件中定义一个value值: <pre class="prettyprint"><code class=" hljs cs">openMask(){ 在dialog.vue组件中做如下操作: <pre class="prettyprint"><code class=" hljs cs">props: { 定义一个showMask变量用于控制是否显示弹窗 <pre class="prettyprint"><code class=" hljs cs">mounted(){ 而要想关闭弹窗,只需要定义一个方法: <pre class="prettyprint"><code class=" hljs cs">closeMask(){ 此刻已经可以实现弹窗的显示与退出。 下面我们要实现的是动态添加标题,内容等,在组件标签中加入title,content: <pre class="prettyprint"><code class=" hljs xml"><span class="hljs-tag"><<span class="hljs-title">dialog-bar <span class="hljs-attribute">title=<span class="hljs-value">"我是标题" <span class="hljs-attribute">content=<span class="hljs-value">"我是内容"><span class="hljs-tag"></<span class="hljs-title">dialog-bar> 可以运用vue的数据双向绑定,更换title,content。 在dialog.vue中获取内容: <pre class="prettyprint"><code class=" hljs css"><span class="hljs-tag">props: <span class="hljs-rules">{ <pre class="prettyprint"><code class=" hljs handlebars"><span class="xml"><span class="hljs-tag"><<span class="hljs-title">div <span class="hljs-attribute">class=<span class="hljs-value">"dialog-title"><span class="hljs-expression">{{<span class="hljs-variable">title}}<span class="xml"><span class="hljs-tag"></<span class="hljs-title">div> 我们可以运用同样的原理来获取不同按钮中的自定名称。 下面我们利用传入的不同type来确定不同的按钮,并提供不同的回调函数。 <pre class="prettyprint"><code class=" hljs lasso"><span class="hljs-subst"><dialog<span class="hljs-attribute">-bar title<span class="hljs-subst">=<span class="hljs-string">"我是标题" content<span class="hljs-subst">=<span class="hljs-string">"我是内容" <span class="hljs-keyword">type<span class="hljs-subst">=<span class="hljs-string">"danger" dangerText<span class="hljs-subst">=<span class="hljs-string">"这是删除按钮"<span class="hljs-subst">></dialog<span class="hljs-attribute">-bar<span class="hljs-subst">> 如传入type为danger,我们可以在dialog.vue中props获取type,并定义一个如下按钮: <pre class="prettyprint"><code class=" hljs handlebars"><span class="xml"><span class="hljs-tag"><<span class="hljs-title">div <span class="hljs-attribute">v-if=<span class="hljs-value">"type == 'danger'" <span class="hljs-attribute">class=<span class="hljs-value">"danger-btn" @<span class="hljs-attribute">click=<span class="hljs-value">"dangerBtn"> <pre class="prettyprint"><code class=" hljs cs">dangerBtn(){ 在标签中定义danger的回调并做一些操作: <pre class="prettyprint"><code class=" hljs lasso"><span class="hljs-subst"><dialog<span class="hljs-attribute">-bar title<span class="hljs-subst">=<span class="hljs-string">"我是标题" content<span class="hljs-subst">=<span class="hljs-string">"我是内容" <span class="hljs-keyword">type<span class="hljs-subst">=<span class="hljs-string">"danger" dangerText<span class="hljs-subst">=<span class="hljs-string">"这是删除按钮" @danger<span class="hljs-subst">=<span class="hljs-string">"clickDanger()"<span class="hljs-subst">></dialog<span class="hljs-attribute">-bar<span class="hljs-subst">> <pre class="prettyprint"><code class=" hljs erlang"><span class="hljs-function"><span class="hljs-title">clickDanger<span class="hljs-params">(){ 同样原理可以获取和增添一些其他的操作: <pre class="prettyprint"><code class=" hljs haskell"> props: { <pre class="prettyprint"><code class=" hljs applescript"><<span class="hljs-keyword">div <span class="hljs-type">class=<span class="hljs-string">"btns"> 点击此处去github下载弹窗代码: 作者:rookie.he(kuke_kuke) 博客链接: 欢迎关注支持,谢谢! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |