当前位置:首页 > 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', '操作成功')

注意事项

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

vue toast实现

标签: vuetoast
分享给朋友:

相关文章

vue实现购物按钮

vue实现购物按钮

Vue 购物按钮实现方法 基础按钮实现 使用 Vue 的模板语法创建基础按钮组件,绑定点击事件处理购物逻辑: <template> <button @click="addTo…

vue实现页面截屏

vue实现页面截屏

使用html2canvas库实现截屏 html2canvas是一个流行的JavaScript库,可以将DOM元素转换为Canvas图像。在Vue项目中安装html2canvas: npm insta…

vue路由实现内部切换

vue路由实现内部切换

Vue 路由实现内部切换的方法 Vue Router 是 Vue.js 官方的路由管理器,用于实现单页应用(SPA)的页面切换。以下是几种常见的内部路由切换方式: 使用 <router-lin…

vue使用vr实现标注

vue使用vr实现标注

Vue 中使用 VR 实现标注的方法 在 Vue 项目中结合 VR 技术实现标注功能,可以通过 WebXR 和 Three.js 等库实现。以下为具体实现方法: 安装依赖 确保项目中已安装 Thre…

vue里实现增删改查

vue里实现增删改查

在Vue中实现增删改查 数据初始化 在Vue组件的data中定义初始数据和表单绑定的变量: data() { return { items: [ { id: 1, name:…

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <templat…