当前位置:首页 > VUE

vue toast实现

2026-01-13 04:03:05VUE

Vue 中实现 Toast 的方法

使用第三方库(推荐) vue-toastification 是一个流行的 Vue Toast 通知库,安装简单且功能丰富。

安装命令:

npm install vue-toastification

在 main.js 中引入并配置:

import Toast from 'vue-toastification'
import 'vue-toastification/dist/index.css'

const options = {
  timeout: 3000,
  position: 'top-right'
}

Vue.use(Toast, options)

在组件中使用:

this.$toast.success('操作成功')
this.$toast.error('操作失败')
this.$toast.info('提示信息')

自定义 Toast 组件 创建一个 Toast.vue 组件:

<template>
  <div class="toast" v-if="show">
    {{ message }}
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: false,
      message: ''
    }
  },
  methods: {
    display(message, duration = 3000) {
      this.message = message
      this.show = true
      setTimeout(() => {
        this.show = false
      }, duration)
    }
  }
}
</script>

<style>
.toast {
  position: fixed;
  top: 20px;
  right: 20px;
  padding: 10px 20px;
  background: #333;
  color: white;
  border-radius: 4px;
  z-index: 9999;
}
</style>

在 main.js 中全局注册:

import Toast from '@/components/Toast'

Vue.prototype.$toast = {
  install(Vue) {
    const ToastClass = Vue.extend(Toast)
    const instance = new ToastClass()
    instance.$mount(document.createElement('div'))
    document.body.appendChild(instance.$el)

    Vue.prototype.$toast = (msg, duration) => {
      instance.display(msg, duration)
    }
  }
}

使用 Vuex 管理 Toast 状态 在 store 中创建 toast 模块:

const state = {
  show: false,
  message: ''
}

const mutations = {
  SHOW_TOAST(state, payload) {
    state.show = true
    state.message = payload.message
  },
  HIDE_TOAST(state) {
    state.show = false
  }
}

const actions = {
  showToast({ commit }, message) {
    commit('SHOW_TOAST', { message })
    setTimeout(() => {
      commit('HIDE_TOAST')
    }, 3000)
  }
}

在组件中使用:

this.$store.dispatch('showToast', '操作成功')

注意事项

vue toast实现

  • 对于简单项目,推荐使用第三方库
  • 自定义组件需要考虑动画效果和多种样式
  • Vuex 方式适合中大型项目需要全局状态管理的情况
  • 移动端项目需要考虑响应式布局和触摸交互

标签: vuetoast
分享给朋友:

相关文章

vue实现缩放

vue实现缩放

Vue 实现缩放的方法 在 Vue 中实现缩放功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS transform 属性 通过 CSS 的 transform: scale() 属性可…

vue实现xss

vue实现xss

XSS 攻击简介 XSS(跨站脚本攻击)是一种常见的安全漏洞,攻击者通过注入恶意脚本到网页中,当其他用户访问该页面时,脚本会在其浏览器中执行,可能导致数据泄露或会话劫持。 Vue 中的 XSS…

javascript实现vue

javascript实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,主要包括数据绑定、响应式系统和虚拟 DOM。以下是一个简化的实现示例。 数据响应式系统 通过 Object.de…

vue nexttick实现

vue nexttick实现

Vue 中 nextTick 的实现原理 Vue 的 nextTick 是一个用于在下次 DOM 更新循环结束之后执行延迟回调的方法。它的核心实现依赖于 JavaScript 的事件循环机制。 基本…

vue指令实现

vue指令实现

Vue 指令的实现方式 Vue 指令是特殊的标记,用于在 DOM 元素上应用特定的行为。可以通过全局或局部方式注册自定义指令。 全局注册指令 在 Vue 应用中通过 Vue.directive 方法…

vue实现文章滚动

vue实现文章滚动

Vue 实现文章滚动效果 使用 CSS 实现基础滚动 通过 CSS 的 overflow 和 height 属性控制滚动区域,适用于静态内容滚动。在 Vue 模板中定义固定高度的容器,内容超出后自动滚…