vue element Message 每次只出现一次,同时点击 message 跳转到其他页面上

本文介绍了如何在Vue应用中创建自定义消息提示组件,包括`resetMessage`函数的实现,以及如何在`main.js`中注册并使用。通过`Message`组件管理不同类型的提示,并在页面点击事件中关闭消息。
摘要由CSDN通过智能技术生成

 第一步:新建文件夹  XXXXXXXXX.js 

import { Message } from "element-ui";
let messageInstance = null;
var resetMessage = (options) => {
  if (messageInstance) {
    messageInstance.close();
  }
  messageInstance = Message(options);
};
resetMessage.close = function () {
 if (messageInstance) {
    messageInstance.close();
    messageInstance = null;
  }
};
["error", "success", "info", "warning"].forEach((type) => {
  resetMessage[type] = (options) => {
    if (typeof options === "string") {
      options = {
        message: options,
        type: type,
      };
    }
    options.type = type;
    return resetMessage(options);
  };
});

export const message = resetMessage;

第二步:在main.js  注册到vue实例中

import { message } from "你的js 文件路径";
Vue.prototype.$message = message;

第三不: 在页面上使用

// 调用 message
     this.$message({
        dangerouslyUseHTMLString: true,
        duration: 0,
        customClass: "myAddCard",
        message:'<a style="color: #32AA9F;cursor: pointer;">XXXXXXXX</a>',
      });
      const myAddCard = document.getElementsByClassName("myAddCard");
      for (var i = 0; i < myAddCard.length; i++) {
        myAddCard[i].addEventListener("click", () => {
          this.$message.close();
          this.$router.push("你的路由地址");
        });
       }

// 关闭 message
 this.$message.close();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于Element UI的登录表单组件的代码示例: ```vue <template> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-width="100px"> <el-form-item label="用户名" prop="username"> <el-input v-model="loginForm.username"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input type="password" v-model="loginForm.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="login">登录</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { loginForm: { username: '', password: '' }, loginRules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' } ] } } }, methods: { login() { this.$refs.loginForm.validate(valid => { if (valid) { // 在这里编写登录成功后的跳转逻辑 this.$router.push('/dashboard') } else { return false } }) } } } </script> ``` 该组件包含一个基本的登录表单,用户输入用户名和密码后,点击登录按钮会调用 `login` 方法。在 `login` 方法中,我们首先通过 `this.$refs.loginForm.validate` 方法校验表单数据是否合法,如果合法则执行登录成功后的跳转逻辑,这里我们使用了 Vue Router 的 `$router.push` 方法来进行页面跳转。需要注意的是,在实际应用中,我们通常会将登录逻辑封装到一个单独的服务中,不会直接在组件中编写登录代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值