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 相关文章推荐
模仿JQuery sortable效果 代码有错但值得看看
Nov 05 Javascript
javascript 快速排序函数代码
May 30 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
如何使用jquery修改css中带有!important的样式属性
Apr 28 Javascript
JavaScript性能优化总结之加载与执行
Aug 11 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
Aug 12 Javascript
vue修改对象的属性值后页面不重新渲染的实例
Aug 09 Javascript
vue实现商城秒杀倒计时功能
Dec 12 Javascript
js获取图片的base64编码并压缩
Dec 05 Javascript
vue 把二维或多维数组转一维数组
Apr 24 Vue.js
详解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
smarty的保留变量问题
2008/10/23 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
Javascript的this用法
2017/01/16 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
浅谈js闭包理解
2019/04/01 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
C#面试题问题集
2016/04/02 面试题
内部类的定义、种类以及优点
2013/10/16 面试题
周年庆典邀请函范文
2014/01/23 职场文书
个人授权委托书
2014/04/03 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
小学优秀教师材料
2014/12/15 职场文书
超市食品安全承诺书
2015/04/29 职场文书
学生病假条怎么写
2015/08/17 职场文书
《开国大典》教学反思
2016/02/16 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
SQL Server中搜索特定的对象
2022/05/25 SQL Server