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 相关文章推荐
全面解析Vue中的$nextTick
Dec 24 Vue.js
详解Vue2的diff算法
Jan 06 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
vue 数据双向绑定的实现方法
Mar 04 Vue.js
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
详解Vue的列表渲染
Nov 20 Vue.js
浅谈Vue的computed计算属性
Mar 21 Vue.js
vue中div禁止点击事件的实现
Apr 02 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
代码生成器 document.write()
2007/04/15 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
Vue如何引入远程JS文件
2017/04/20 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
中科方德软件测试面试题
2016/04/21 面试题
商务会议邀请函
2014/01/09 职场文书
争先创优演讲稿
2014/09/15 职场文书
诚信承诺书
2015/01/19 职场文书
2015年双拥工作总结
2015/04/08 职场文书
小学工作总结2015
2015/05/04 职场文书
校园运动会广播稿
2015/08/19 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android