项目场景:
今天在写项目的时候想要寻找一个简洁好看的提示框,于是去Element-ui发现Notification 还不错,但是考虑到只使用一个Notification组件全部引入element会使项目体积变大,于是使用了局部引入的方式,但是出现了报错:this.$notify is not a function
问题描述:
这是我在element.js中所写的代码
import Vue
from 'vue'
import {
Notification
,
} from 'element-ui'
Vue
.use(Notification
)
这是在vue实例中使用Notification的代码
$
.post(url
,this
.form
,(result
) => {
this
.$
notify({
title
: '成功',
message
: result
.message
,
type
: 'success'
});
this
.closeDialog();
this
.reloadData();
})
然后在浏览器的控制台发现了如下错误:
原因分析:
去官网看了一下发现,我们在使用element-ui组件库里组件的时候,有时候是当作html标签去使用,比如<el-button></el-button>,而有时候是使用它的方法,比如这个消息提示框,在使用方法的时候如果是局部引用要将这个方法放到Vue的原型上,这样它的实例在调用这个方法的时候就不会报错了。
解决方案:
在element.js中添加如下代码
Vue
.prototype
.$notify
= Notification
;
添加后如下:
import Vue
from 'vue'
import {
Notification
,
} from 'element-ui'
Vue
.prototype
.$notify
= Notification
;
这样消息提示框就可以正常使用了 官方文档对引入组件的说明:
最后附上官方文档:https://element.eleme.cn/#/zh-CN/component/quickstart