vue实现Toast组件轻提示


Posted in Vue.js onApril 10, 2022

vue实现Toast轻提示

首先创建一个toast组件

<template>
  <div class="context" v-show="isshow">
    <span class="tip">{{ text }}</span>
  </div>
</template>
<script>
export default {
  name: "Toast",
  props: {
    isshow: {
      type: Boolean,
    },
    text: {
      type: String,
    },
  },
  watch: {
    isshow(val) {
      if (val === true) {
        setTimeout(() => {
          this.isshow = false;
        }, 3000);
      }
    },
  },
};
</script>
<style lang="less" scoped>
.context {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 100;
  display: flex;
  justify-content: center;
  align-items: center;
  .tip {
    background-color: rgba(40, 40, 40, 0.8);
    color: aliceblue;
    font-size: 0.6rem;
    padding: 0.2rem;
    border-radius: 0.1rem;
  }
}
</style>

在js文件中引入组件

import Toast from "./Toast.vue";
let NewToast = {
  install: function (Vue) {
    //创建vue插件,官方地址https://cn.vuejs.org/v2/guide/plugins.html
    let newToast = Vue.extend(Toast); //创建vue构造器,官方地址https://cn.vuejs.org/v2/api/#Vue-extend
    let toast = new newToast(); //创建实例
    document.body.appendChild(toast.$mount().$el); //挂载
    Vue.prototype.$Toast = function (text) {
      toast.isshow = true; // 传入props
      toast.text = text; // 传入props
    };
  },
};
export { NewToast };

在入口文件中引入上面这个js文件

import { NewToast } from "@/components/index.js";
Vue.use(NewToast);

下面就可以在view里全局使用了

but() {
    this.$Toast("Are you ok ?");
},

效果图

vue实现Toast组件轻提示

这样一个简单的轻提示就好了,觉得样式丑的话,可以自己调一下。

使用vant的Toast轻提示报错

记录一下今天使用vant中的Toast 轻提示,按照官方文档中的方法去使用发现报错使用不了。

文档中是这样写的

Toast.success('成功文案');
Toast.fail('失败文案');

main.js中引用vant后直接调用Toast报错。

实际使用是这样写

this.$toast.success("成功文案");
this.$toast.fail("失败文案");

和调用路由一样需要this点出来。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。 

Vue.js 相关文章推荐
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
如何在 Vue 表单中处理图片
Jan 26 Vue.js
Vite和Vue CLI的优劣
Jan 30 Vue.js
vue-cli中实现响应式布局的方法
Mar 02 Vue.js
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
vue2实现provide inject传递响应式
May 21 Vue.js
vue+spring boot实现校验码功能
May 27 Vue.js
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
Vue.Draggable实现交换位置
Apr 07 Vue.js
vue自定义右键菜单之全局实现
Apr 09 #Vue.js
vue判断按钮是否可以点击
Apr 09 #Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 #Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 #Vue.js
vue实现列表垂直无缝滚动
Apr 08 #Vue.js
vue3引入highlight.js进行代码高亮的方法实例
vue中的可拖拽宽度div的实现示例
You might like
php缓冲输出实例分析
2015/01/05 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
Node.js中的事件驱动编程详解
2014/08/16 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
建筑行业的大学生自我评价
2013/12/08 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
财政局个人年终总结
2015/03/03 职场文书
车间安全生产管理制度
2015/08/06 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
Python基于百度API识别并提取图片中文字
2021/06/27 Python
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js
mysql查看表结构的三种方法总结
2022/07/07 MySQL