vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解


Posted in Javascript onMay 28, 2018

项目结构,在组件文件夹(components)下新建common文件夹,所用公用组件放里面,本例包含tips和loading两个

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

一、loading组件

    1.loading.vue组件内容如下:

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

代码:

<template>
  <div class="loading" v-show="loading">
  <img src="./loading.gif">
  </div>
 </template>
 <script>
 export default {
  name: 'loading',
  data() {
  return {
   loading: false
  }
  },
  created() {
  var that = this;
  this.bus.$on('loading', function (data) {
   that.loading = !!data;
  })
  }
 }
 </script>
 <style scoped lang="scss">
  .loading{
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 999;
  width: 100 %;
  height: 100 %;
  color: #fff;
  background - color: rgba(0, 0, 0, 0.8);
  p {
   padding: .15rem .15rem .2rem;
   color: #fff;
   font-size: .16rem;
  }
  img {
   width: .4rem;
   height: .4rem;
  }
  }
 </style>

2.app.vue中设置

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

<template>
 <div id="app">
 <router-view/>
 <loading></loading> 
 </div>
</template>
<script>
 import tips from '@/components/common/tips'
 import loading from '@/components/common/loading'
 export default {
  name: 'App',
  components:{tips,loading}
 }
</script>

在main.js中设置

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

Vue.prototype.bus = new Vue;

3.在.vue组件中使用    

// 显示loading
this.bus.$emit('loading', true);
// 关闭loading
this.bus.$emit('loading', false);

效果如下

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

二、tips组件

1.内容:

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

代码:

<template>
 <!-- 提示弹层 -->
 <div class="tips" v-show="tips.show">
 <h3>{{tips.title}}</h3> 
 </div>
</template>
<script>
 export default {
 name: 'tips',
 data (){
 return {
   // 可以根据实际情况写更复杂的弹层,根据情况扩充tips即可

  tips:{
  show:false,
  title:''
  }
 }
 },
 created () {
 this.bus.$on('tips',(data)=>{
  this.tips = data;
 })
 },
 watch:{
 // 检测tips变化,显示提示1.5s之后自动关闭,可根据实际情况自动修改时间

 tips:function(){
  if(this.tips.show){
  setTimeout( ()=>{
   this.tips.show = false;
  },1500)
  }
 }
 }
}
</script>
<style scoped lang="scss">
.tips{
 display: flex;
 justify-content: center;
 flex-direction: column;
 align-items: center;
 position: fixed;
 left: 0;
 top: 0;
 z-index: 999;
 width: 100%;
 height: 100%;
 color: #fff;
 h3{
 padding: .1rem .2rem;
 font-size: 12px;
 line-height: 12px;
 background-color: rgba(0,0,0,0.8);
 border-radius: 4px;
 }
}
</style>

2.app.vue中设置

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

在main.js中设置

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

Vue.prototype.bus = new Vue;

3.在.vue组件中使用

this.bus.$emit('tips', { show: true, title: '我是标题'})

效果:

vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解

本例使用的tips内容比较简单,想实现复杂的扩充即可,实现方法是一样的

其他公共组件实现方法类似

总结

以上所述是小编给大家介绍的vue-cli项目中使用公用的提示弹层tips或加载loading组件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Array的push与unshift方法性能比较分析
Mar 05 Javascript
今天是星期几的4种JS代码写法
Sep 17 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
Nov 21 Javascript
怎么判断js脚本加载完成
Feb 28 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
jquery实现全选、反选、获得所有选中的checkbox
Sep 13 Javascript
JS判断字符串变量是否含有某个字串的实现方法
Jun 03 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 jQuery
vue 实现移动端键盘搜索事件监听
Nov 06 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 Javascript
JS继承实现方法及优缺点详解
Sep 02 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 #jQuery
JavaScript继承定义与用法实践分析
May 28 #Javascript
关于jquery中attr()和prop()方法的区别
May 28 #jQuery
JS数组去重常用方法实例小结【4种方法】
May 28 #Javascript
jQuery中将json数据显示到页面表格的方法
May 27 #jQuery
javascript少儿编程关于返回值的函数内容
May 27 #Javascript
《javascript少儿编程》location术语总结
May 27 #Javascript
You might like
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
Python中包的用法及安装
2020/02/11 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
C语言编程练习
2012/04/02 面试题
中职生自我鉴定范文
2013/10/03 职场文书
质检的岗位职责
2013/11/17 职场文书
公务员诚信承诺书
2014/05/26 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
土地租赁协议书
2015/01/29 职场文书
投标邀请书范本
2015/02/02 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
简历自我评价范文
2019/04/24 职场文书