最简单的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 相关文章推荐
客户端静态页面玩分页
Jun 26 Javascript
特殊字符、常规符号及其代码对照表
Jun 26 Javascript
javascript中的几个运算符
Jun 29 Javascript
用javascript实现的激活输入框后隐藏初始内容
Jun 29 Javascript
javascript在IE下trim函数无法使用的解决方法
Sep 12 Javascript
JS中产生标识符方式的演变
Jun 12 Javascript
Javascript下拉刷新的简单实现
Feb 14 Javascript
layui多图上传实现删除功能的例子
Sep 23 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
vue数据响应式原理知识点总结
Feb 16 Javascript
Vue如何将页面导出成PDF文件
Aug 17 Javascript
js加减乘除精确运算方法实例代码
Jan 17 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
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
浅析php原型模式
2014/11/25 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
php实现的二分查找算法示例
2017/06/20 PHP
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
详解Bootstrap插件
2016/04/25 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
vue.js路由跳转详解
2017/08/28 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
Python数据库的连接实现方法与注意事项
2016/02/27 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
python实现粒子群算法
2020/10/15 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
恶意软件的定义
2014/11/12 面试题
个人工作主要事迹
2014/05/08 职场文书
员工工作自我评价
2014/09/26 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
护士自荐信范文
2015/03/25 职场文书
《观潮》教学反思
2016/02/17 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL