vue暴露的全局方法_vue定义全局变量和全局方法

一、全局引入文件

1、先定义共用组件 common.vue

// 定义一些公共的属性和方法

const httpUrl = 'http://39.105.17.99:8080/'

function commonFun() {

console.log("公共方法")

}

// 暴露出这些属性和方法

export default {

httpUrl,

commonFun

}

2、在需要使用的地方导入

// 导入共用组件

import global from './common.vue'

export default {

data () {

return {

username: '',

password: '',

// 赋值使用

globalHttpUrl: global.httpUrl

}

},

3、使用

{{globalHttpUrl}}

二、main.js中引入全局变量和方法

1、定义共用组件同上

2、main.js中引入并复制给vue

// 导入共用组件

import global from './common.vue'

Vue.prototype.COMMON = global

3、使用

export default {

data () {

return {

username: '',

password: '',

// 赋值使用, 可以使用this变量来访问

globalHttpUrl: this.COMMON.httpUrl

}

},

三、定义common.js文件,直接在main.js中引入,直接使用

1、common.js 这里注意 Vue.http 组件中使用 this.$http

import Vue from 'vue'

import VueResource from 'vue-resource'

Vue.use(VueResource)

const httpUrl = 'http://39.105.17.99:8080/'

function httpGet (url, params) {

return new Promise((resolve, reject) => {

Vue.http.get(this.httpUrl + url, params).then(

(res) => {

resolve(res.json())

},

(err) => {

reject(err.json())

}

)

})

}

function httpPost (url, params) {

return new Promise((resolve, reject) => {

Vue.http.post(this.httpUrl + url, params).then(

(res) => {

resolve(res.json())

},

(err) => {

reject(err.json())

}

)

})

}

export default {

httpUrl,

httpGet,

httpPost

}

2、main.js

import global from './common/common'

Vue.prototype.GLOBAL = global

3、使用

{{GLOBAL.httpUrl}}

--------------------------------------------

created () {

this.GLOBAL.httpGet('/home/list', {'name': 'zxc', 'password': '123'}).then(

(res) => {

console.log(res)

}

)

},

总结 实例

common.vue文件,项目中的公共,或者全局文件

vue-resource需要先配置一下 main.js

// 配置使用formDate

Vue.http.options.emulateHTTP = true

Vue.http.options.emulateJSON = true

// 定义一些公共的属性和方法

const httpUrl = 'http://39.105.17.99:8080/'

function promiseFun (url, params) {

return new Promise((resolve, reject) => {

this.$http.post(this.globalHttpUrl + url, params).then(

(res) => {

resolve(res.json())

},

(err) => {

reject(err.json())

}

)

})

}

// 暴露出这些属性和方法

export default {

httpUrl,

promiseFun

}

使用

export default {

data () {

return {

username: '',

password: '',

globalHttpUrl: global.httpUrl,

promiseFun: global.promiseFun

}

},

methods: {

loginInFun () {

localStorage.setItem('userId', '00001')

let params = {

telphone: this.username,

password: this.password

}

this.promiseFun('itArtison/user/login', params).then(

(res) => {

console.log(res)

this.$Message.info(res.message)

// 登录成功过以后,这里从初session

// 先将对象转换为json字符串

localStorage.setItem('userInfo', JSON.stringify(res.data))

if (res.code === '0000') {

this.$router.push({'name': 'Home'})

}

},

(err) => {

console.log(err)

this.$Message.info(err.message)

}

)

}

}

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
<div style="color:#444444;"> 适用人群 <p style="color:#666666;"> 所有的IT从业者,尤其适合快速掌握新技术,快速增长工作经验人群,对教育公平,教育公益,教育爱心公益人士 </p> </div> <p> </p> 课程概述 <p> 该互联网实战项目是基于 Spring Boot 2+ SpringSecurity5+Element UI+Vue Admin Template+蚂蚁可视化AntV 等技术栈开发的项目,采用分布式,多模块,前后端分离开发。包括图形展示、权限管理、用户管理等功能。<br /> 【后端技术】<br /> 技术 说明<br /> Spring Boot2 MVC框架 开发的一站式解决方案<br /> Spring Security5  认证和授权框架<br /> MyBatisPlus3.3.1  基于 MyBatis 框架的快速研发框架<br /> MyBatisCode工具 生成 MyBatis 相关代码<br /> Jackson 提供了处理 JSON 数据的工具<br /> Lombok 简化对象封装工具 <br /> Druid   数据库连接池 <br /> 【前端技术】<br /> Vue        互联网最火的前端框架<br /> Vue Router 路由框架<br /> Vuex 全局状态管理框架<br /> Axios 前端 HTTP 框架<br /> Element UI 前端 UI 框架<br /> Vue Element Admin 前端模板<br /> Antv  蚂蚁金服可视化技术,阿里巴巴可视化技术,天猫,淘宝,支付宝,花呗均使用AntV<br /> 【开发工具】<br /> IntelliJ IDEA 开发 IDE<br /> SQLyog 数据库连接客户端<br /> Postman HTTP 请求工具<br /> 【开发环境】<br /> 工具 版本<br /> JDK 1.8 </p> <p> MySQL 5.7 </p> <p> <img src="https://img-bss.csdn.net/202004100922276928.png" alt="" /><img src="https://img-bss.csdn.net/202004100922434479.png" alt="" /><img src="https://img-bss.csdn.net/202004100922566924.png" alt="" /><img src="https://img-bss.csdn.net/202004100923062693.png" alt="" /></p> <p> <br /></p> <p> <br /></p>
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页