最简单的vue消息提示全局组件的方法


Posted in Javascript onJune 16, 2019

简介

实现功能

  • 自定义文本
  • 自定义类型(默认,消息,成功,警告,危险)
  • 自定义过渡时间

使用vue-cli3.0生成项目

最简单的vue消息提示全局组件的方法

最简单的vue消息提示全局组件的方法

toast全局组件编写

/src/toast/toast.vue

<template>
 <div class="app-toast"
    v-if="isShow"
    :class="{'info': type=== 'info','success': type=== 'success','wraning': type=== 'wraning','danger': type=== 'danger'}">{{text}}</div>
</template>
<style scoped>
.app-toast {
 position: fixed;
 left: 50%;
 top: 50%;
 background: #ccc;
 padding: 10px;
 border-radius: 5px;
 transform: translate(-50%, -50%);
 color: #fff;
}
.info {
 background: #00aaee;
}
.success {
 background: #00ee6b;
}
.wraning {
 background: #eea300;
}
.danger {
 background: #ee000c;
}
</style>

/src/toast/index.js

import vue from 'vue'
import toastComponent from './toast.vue'

// 组件构造器,构造出一个 vue组件实例
const ToastConstructor = vue.extend(toastComponent)

function showToast ({ text, type, duration = 2000 }) {
 const toastDom = new ToastConstructor({
  el: document.createElement('div'),
  data () {
   return {
    isShow: true, // 是否显示
    text: text, // 文本内容
    type: type // 类型
   }
  }
 })
 // 添加节点
 document.body.appendChild(toastDom.$el)
 // 过渡时间
 setTimeout(() => {
  toastDom.isShow = false
 }, duration)
}
// 全局注册
function registryToast () {
 vue.prototype.$toast = showToast
}

export default registryToast

全局注册

/main.js

import toastRegistry from './toast/index'
Vue.use(toastRegistry)

调用

/src/views/home.vue

<template>
 <div class="home">
  <input type="button"
      value="显示弹窗"
      @click="showToast">
 </div>
</template>

<script>

export default {
 name: 'home',
 methods: {
  showToast () {
   this.$toast({
    text: '我是消息'
    // type: 'wraning',
    // duration: 3000
   })
  }
 }
}
</script>

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

Javascript 相关文章推荐
一个javascript参数的小问题
Mar 02 Javascript
jquery js 重置表单 reset()具体实现代码
Aug 05 Javascript
一个通过script自定义属性传递配置参数的方法
Sep 15 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
微信小程序 http请求详细介绍
Oct 09 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
vue2.0 + ele的循环表单及验证字段方法
Sep 18 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
Nov 08 Javascript
JS执行控制之节流模式实例分析
Dec 21 Javascript
通过实例解析js可枚举属性与不可枚举属性
Dec 02 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 #Javascript
详解vue微信网页授权最终解决方案
Jun 16 #Javascript
浅谈一种让小程序支持JSX语法的新思路
Jun 16 #Javascript
JavaScript 处理树数据结构的方法示例
Jun 16 #Javascript
JavaScript中的ES6 Proxy的具体使用
Jun 16 #Javascript
简谈创建React Component的几种方式
Jun 15 #Javascript
JS中的一些常用的函数式编程术语
Jun 15 #Javascript
You might like
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
javascript的console.log()用法小结
2012/05/31 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
JS判断客服QQ号在线还是离线状态的方法
2015/01/13 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
详解基于django实现的webssh简单例子
2018/07/17 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
最新销售员个人自荐信
2013/09/21 职场文书
电子商务专业个人的自我评价
2013/11/19 职场文书
优秀学生自我鉴定范例
2013/12/18 职场文书
工地资料员岗位职责
2013/12/31 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
实验教师岗位职责
2014/02/13 职场文书
销售经理竞聘书
2014/03/31 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android