在vuex中调用element的message的消息弹框

在vuex中调用element的message的消息弹框:

我们首先在vuex中打印一下 this:

 GETUSERINFO(state, userInfo) {
 	console.log(this)
    console.log(this._vm.__proto__)
  },


请添加图片描述

可以看到 _vm 就是vue 的实例对象,所以我们可以直接使用:

 GETUSERINFO(state, userInfo) {
 	 this._vm.$message.success(data.msg)  // 成功提示
 	 this._vm.$message.error(result.message)  //失败提示
  },

注意:这里必须使用第一种按需导入的方法把 ElementUI组件挂载到原型上。

按需引用 Element-UI

下载:

cnpm i element-ui -S

安装 babel-plugin-component 插件:

npm install babel-plugin-component -D

官网上让我们配置 .babelrc 文件,这里我们直接修改项目中的 babel.config.js 文件就好:

module.exports = {
  presets: ["@vue/cli-plugin-babel/preset"],
  plugins: [
    [
      "component",
      {
        libraryName: "element-ui",
        styleLibraryName: "theme-chalk",
      },
    ],
  ],
};
按需引入的第一种方式:
import Vue from 'vue';
import App from './App.vue';
import { Loading, MessageBox, Message } from 'element-ui';

/*  挂载到vue原型上 */
Vue.prototype.$loading = Loading.service;
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$message = Message;


new Vue({
  el: '#app',
  render: h => h(App)
});
按需引入的第二种方式:

main.js中配置:

import Vue from 'vue';
import App from './App.vue';
import { Button, Select } from 'element-ui';

Vue.component(Button.name, Button);  //这种方法和注册自定义全局组件类似
Vue.component(Select.name, Select);

/* 也可以直接用Vue.use
 * Vue.use(Button)
 * Vue.use(Select)
 */

new Vue({
  el: '#app',
  render: h => h(App)
});

把全局事件总线挂载到 vue原型上

一种组件间通信的方式,适用于 任意组件间通信

安装全局事件总线:

new Vue({
	......
	beforeCreate() {
		Vue.prototype.$bus = this //安装全局事件总线,$bus就是当前应用的vm
	},
    ......
}) 

使用事件总线:

接收数据:A组件想接收数据,则在A组件中给$bus绑定自定义事件,事件的 回调留在A组件自身

data() {
    return {
      dome: []
    }
  },
mounted() {
    //通过全局事件总线清除关键字
    this.$bus.$on('xxxx',this.dome)
  },

另一个通信组件提供数据:

this.$bus.$emit('xxxx',数据)

【实例】: 首页输入搜索词后点击跳转到搜索页面,此时应该通知搜索框组件 清空搜索的输入框。

data() {
    return {
      keyword: ''
    }
  },
mounted() {
    //通过全局事件总线清除关键字
    this.$bus.$on('clear', () => {
      this.keyword = ''
    })
  },
 this.$bus.$emit('clear')   // Search页面 通知兄弟组件(搜索框组件)清除关键字

最好在beforeDestroy钩子中,用 $off 去解绑当前组件所用到的事件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OooooYi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值