Vue实现PopupWindow组件详解


Posted in Javascript onApril 28, 2018

这段时间一直在学习前端技术来完成自己的小项目。在js方面就使用了Vue框架。由于在项目里想实现一个新建地址的PopupWindow效果,便想到可以使用Vue的一些特性来实现。

用到的Vue特性:组件(Component),props传值,slot内容插入,transitions过渡动画,x-templete模板。

直接上代码(完整代码可在链接中下载popupwindow):

html代码(无样式):

<div id="address-choose">
 <div>
 <button @click="showOneBtnWindow()">显示</button>
 </div>
 <new-address-window 
  v-show="isShowEditWindow" 
  @close="removeEditWindow()" 
  :addressregion="addressRegion">
  <!--使用插槽显示不同的title-->
  <p slot="edit-window-title">
  {{editTitle}}
  </p>
  <div slot="popup-btn-container">
  <button>保存</button> 
  <button>删除</button>
 </div>
 </new-address-window>
 </div>
<!--新建地址popupwindow模板-->
<script type="text/x-template" id="popup-window-address-new">
 <transition name="popup-window-transition">
 <div>
 <slot name="edit-window-title">
 <p>新建收货地址</p>
 </slot> 
 </div>
 <div>
 <p>收货人</p>
 <input type="text" :value="addressregion.name"/>
 </div>
 <div>
 <p>选择地区</p>
 <ul>
 <li>{{addressregion.province}}</li>
 <li>{{addressregion.city}}</li>
 <li>{{addressregion.region}}</li>
 </ul>
 </div>
 <div>
 <p>联系电话</p>
 <input type="text" placeholder="手机号"/>
 </div>
 <div>
 <p>详细地址</p>
 <input type="text" placeholder="如街道、楼层、门牌号等"/>
 </div>
 <div>
 <p>邮政编码</p>
 <input type="text" placeholder="邮政编码(选填)"/>
 </div>
 <div>
 <slot name="popup-btn-container">
 <button class="btn btn-success">保存</button>
 <button class="btn btn-danger">删除</button>
 </slot>
 </div>
 </div>
 </transition>
</script>

js代码:

/*
 * 新建与编辑地址Vue组件popupwindow
 * */
var newAddressWindow = Vue.component("new-address-window",{
 props: ['addressregion'],
 template: "#popup-window-address-new"
})

/*
 * 地址popupwindow的Vue实例
 * */
var chooseAddress = new Vue({
 el: "#address-choose",
 data: {
 isShowEditWindow: true,
 isOneButton: false,
 editTitle: "新建收货地址",
 //填入初始地址信息,组件与改数据绑定
 addressRegion: {
 }
 },
 methods: {
 showOneBtnWindow: function(){ //显示新建收货地址对话框(有一个按钮)
 this.isShowEditWindow = true;
 this.isOneButton = false;
 this.editTitle = "新建收货地址";
 },
 removeEditWindow: function(){ //关闭新建与编辑地址选择对话框
 this.isShowEditWindow = false;
 }
 }
})

至此,一个popupwindow的组件就完成了。在实现一个Vue组件时,可以使用模板来实现组件,我这里采用了x-templete模板实现了组件,同时在组件通也可以使用vue的transition特性加入一些动画效果。

Vue实现PopupWindow组件详解

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

Javascript 相关文章推荐
帮助避免错误的Javascript陷阱清单
May 31 Javascript
动态调用CSS文件的JS代码
Jul 29 Javascript
自己动手写的javascript前端等待控件
Oct 30 Javascript
微信小程序 跳转方式总结
Apr 20 Javascript
JQuery EasyUI的一些常用组件
Jul 12 jQuery
JavaScript实现图片本地预览功能【不用上传至服务器】
Sep 20 Javascript
VUE2实现事件驱动弹窗示例
Oct 21 Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 Javascript
vue中uni-app 实现小程序登录注册功能
Oct 12 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
Apr 27 Javascript
怎么理解wx.navigateTo的events参数使用详情
May 18 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 Javascript
详解angular路由高亮之RouterLinkActive
Apr 28 #Javascript
vue弹窗组件使用方法
Apr 28 #Javascript
学习Vue组件实例
Apr 28 #Javascript
vue弹窗消息组件的使用方法
Sep 24 #Javascript
layui实现动态和静态分页
Apr 28 #Javascript
js实现二级菜单点击显示当前内容效果
Apr 28 #Javascript
Vue实现点击时间获取时间段查询功能
Aug 21 #Javascript
You might like
咖啡与水的关系
2021/03/03 冲泡冲煮
sql注入与转义的php函数代码
2013/06/17 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
python hook监听事件详解
2018/10/25 Python
python生成九宫格图片
2018/11/19 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
音乐系毕业生自荐信
2013/10/27 职场文书
预备党员党校学习自我评价分享
2013/11/12 职场文书
幼教个人求职信范文
2013/12/02 职场文书
大学生职业规划论文
2014/01/11 职场文书
中英文求职信范文
2014/01/27 职场文书
拓展策划方案
2014/06/03 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
2014年销售员工作总结
2014/12/01 职场文书
护士求职自荐信
2015/03/25 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
python实现双向链表原理
2022/05/25 Python