Vue在单独引入js文件中使用ElementUI的组件

问题场景:

我想在vue中的js文件中使用elementUI中的组件,因为我在main.js中引入了element包和它的css,并挂载到了全局vue实例中。然后我就在js文件中这样使用

this.$notify({

title: "失败",

message: "请先登录老铁~",

type: "error"

});

结果报错了,报错信息如下

TypeError: _this.$notify is not a function

at index.js:44

2019-03-26更新

import axios from 'axios'

// 注意:在js文件中使用element组件 按照下面更优雅哦~~

import {

Message,

MessageBox

} from 'element-ui'

import store from '../store'

import {

getToken

} from '@/utils/auth'

// 创建axios实例

const service = axios.create({

baseURL: process.env.BASE_API, // api 的 base_url

timeout: 5000 // 请求超时时间

})

// request拦截器

service.interceptors.request.use(

config => {

if (store.getters.token) {

config.headers['X-Token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改

}

return config

},

error => {

// Do something with request error

console.log(error) // for debug

Promise.reject(error)

}

)

// response 拦截器

service.interceptors.response.use(

response => {

/**

* code为非20000是抛错 可结合自己业务进行修改

*/

const res = response.data

if (res.code !== 20000) {

Message({

message: res.message,

type: 'error',

duration: 5 * 1000

})

// 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了;

if (res.code === 50008 || res.code === 50012 || res.code === 50014) {

MessageBox.confirm(

'你已被登出,可以取消继续留在该页面,或者重新登录',

'确定登出', {

confirmButtonText: '重新登录',

cancelButtonText: '取消',

type: 'warning'

}

).then(() => {

store.dispatch('FedLogOut').then(() => {

location.reload() // 为了重新实例化vue-router对象 避免bug

})

})

}

return Promise.reject('error')

} else {

return response.data

}

},

error => {

console.log('err' + error) // for debug

Message({

message: error.message,

type: 'error',

duration: 5 * 1000

})

return Promise.reject(error)

}

)

export default service

解决:

在该js文件中

//1.引入vue

import Vue from 'vue';

//2.新创建一个vue实例

let v = new Vue();

//3.在新的实例上使用组件

v.$notify.error({

title: '错误',

message: '未登录 或者token过期'

});

附上我的全局拦截器

axios/index.js

//引入vue

import Vue from 'vue';

import axios from 'axios';

//新创建一个vue实例

let v = new Vue();

//全局状态控制引入

import store from '../store/store';

import * as types from '../store/mutation-types';

import router from '../router'

// http request 拦截器

axios.interceptors.request.use(

config => {

if (store.state.userInfo.token) { // 判断是否存在token,如果存在的话,则每个http header都加上token

config.headers.Authorization = `JWT ${store.state.userInfo.token}`;

}

// config.headers.imooc = `5429026`;

return config;

},

err => {

return Promise.reject(err);

});

// http response 拦截器

axios.interceptors.response.use(

undefined,

error => {

let res = error.response;

switch (res.status) {

case 401:

// 返回 401 清除token信息并跳转到登录页面

// store.commit(types.LOGOUT);

//router.replace({

// path: '/app/login',

// query: {redirect: router.currentRoute.fullPath}

//})

console.log('未登录 或者token过期');

this.$notify({

title: "失败",

message: "请先登录老铁~",

type: "error"

});

case 403:

console.log('您没有该操作权限');

// alert('您没有该操作权限');

case 500:

console.log('服务器错误');

// alert('服务器错误');

}

return Promise.reject(error.response.data) // 返回接口返回的错误信息

});

单独使用elementui_Vue在单独引入js文件中使用ElementUI的组件相关推荐

  1. 在javascript中使用el表达式(jsp中的javascript中支持写el表达式,毋庸置疑,单独的js文件中不支持写el表达式,别钻牛角尖)

    哎,够背的,最后4张图怎么调整都很小,看不清楚,所以大家还是看我这篇文章吧在javascript中使用el表达式(图片清晰版,有图有真相),这篇文章的图片可以正常看清楚,跟我这篇文章是一样的内容! 有 ...

  2. nuxt 如何引入js_nuxtjs如何在单独的js文件中引入store和router

    nuxtjs里面集成vuex的创建方式改变了,并且官方不建议以导出Vuex实例的方式创建store,并且会在nuxt3里面删除.这样就会存在一个问题,我怎么像普通vue spa项目一样直接 impor ...

  3. React 组件js文件中如何引入其他的js 文件数组

    在编写react 组件,特别是表格的过程中,我个人是最看不得,整个js文件感觉很多的内容,而且数组,函数,html代码都有,整体看起来分邋遢,我使用的是antd的Table 来渲染表格 我们看这样的一 ...

  4. 对JS文件中每个函数单独混淆加密

    自动化脚本:单独对JS代码中的每个函数进行混淆加密 用自动化脚本工具,对JS代码中的每个函数分别进行单独混淆加密.这样加密得到的JS代码,比直接对整个JS代码进行混淆加密,效果要好很多.所谓" ...

  5. JSP页面中引入js文件

    1)引入的js文件出错,  检查方法:将Js的内容写在当前的页面的<script> </script>之间,看是否能够正常运行,如果不能,请核查代码  2) 如果引入的代码在当 ...

  6. vue 在js 文件中使用store_vue 如何在 .js 文件引入 store

    项目中如果配置比较多的话,store的使用可能不只是在store文件夹里面的文件. 比如下面项目结构: 例如希望在api/index.js 文件使用store,改怎么导入呢? 原因 其实在main.j ...

  7. 关于在JS中引入JS文件的JQ方法

    jQuery ajax - getScript() 使用$.getScript()方法就可以进行加载JS文件的代码过来,但是通常这个函数并没有什么作用,因为它是使用传统的ajax进行js代码请求的,所 ...

  8. 挖坑指南:如何在引用的外部js文件中获取vue页面实例?(独家)

    原文链接 前言 在基于iView的后台项目中,表格组件是我们的老朋友了.实现如下的效果更是最基本的需求: 开始 在iView早期1.x的版本(其实在~2.0.0-rc.7也能使用),想要渲染这样的效果 ...

  9. i18n如何在js文件中生效

    在vue项目中引用vue-i18n实现语言切换功能,开发过程中发现,在vue文件中使用都可以,但是在js文件中直接使用$t('zhKey.首页')是不生效的. 下面是我研究出解决办法: // js文件 ...

最新文章

  1. 有些数的素因子只有3,5,7.请设计一个算法,找出其中第k个数
  2. linux启动报错+centos关闭和开启ipv6
  3. android2.2桌面,手机桌面课表软件
  4. USB的八个问题和答案(转)
  5. 算法设计与分析——回溯法——旅行售货员问题
  6. POJ2114-Boatherds-树分治
  7. 生活中java继承例子_简单继承例子:java
  8. 一文读懂C++程序的结构、执行与编译
  9. nodejs面试题笔记
  10. CommandName属性和CommandArgument属性
  11. Python打包exe文件方法汇总【4种】
  12. Index Notation
  13. ssm整合shiro,activiti配置文件
  14. Autovue 21.0.2.3 新功能介绍
  15. 她的话指引了很多人的未来生活———亦舒
  16. easyExcel 导出自动添加序号
  17. 我是一个flag 侠
  18. 独家:海尔消金“重仓”医美,月放款量惊人
  19. 为什么要有SerialVersionUID?
  20. Android 单元测试Truth的使用

热门文章

  1. 信息系统管理工程师复习笔记02 计算机网络通信与信息安全 原创整理
  2. 读武志红的《层次不同的人,难以交流》有感
  3. cisco 2821 路由器的端口映射
  4. 蔚来被勒索225万美元/ 马斯克称只要找到「傻子」接班就辞职/ GitHub与微信合作…今日更多新鲜事在此...
  5. JAVA-SUST实验二 JavaBean组件程序设计
  6. IT屌丝:SKYCC组合营销软件事件营销案例
  7. 360与wifi共享精灵谁更随身?
  8. python保存plot图片_Matplotlib savefig只保存图像,不保存行
  9. 汉字区位码位研究之生成指定数目的汉字
  10. 获取网页上的壁纸,做一个手机壁纸软件