一、全局引入文件

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


<script type="text/javascript">
// 定义一些公共的属性和方法
const httpUrl = 'http://39.105.17.99:8080/'
function commonFun() {
console.log("公共方法")
}
// 暴露出这些属性和方法
export default {
httpUrl,
commonFun
}
</script>

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


<script>
// 导入共用组件
import global from './common.vue'
export default {
data () {
return {
username: '',
password: '',
// 赋值使用
globalHttpUrl: global.httpUrl
}
},

3、使用


<template>
{{globalHttpUrl}}
</template>

二、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、使用


<template>
{{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

<script type="text/javascript">
// 定义一些公共的属性和方法
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
}
</script>

使用


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)
}
)
}
}

来源:https://segmentfault.com/a/1190000015842187

vue定义全局变量和全局方法的更多相关文章

  1. Adobe Edge Animate--关于全局变量和全局方法的定义

    Adobe Edge Animate--关于全局变量和全局方法的定义 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. BY:sonicxsxs 前文中有关音 ...

  2. 在MFC下如何定义全局变量和全局函数

    用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行.实际上有多种方法可以实现,这里只介绍两种 ...

  3. Vue(八)全局变量和全局方法

    一.在main.js同级目录建立一个common.js文件 // 全局变量 const globalObj = {}; // 定义公共变量 globalObj.name = '小明'; // 定义公共 ...

  4. 如何在微信小程序定义全局变量、全局函数、如何实现 函数复用 模块化开发等问题详解

    1.如何定义全局数据 在app.js的App({})中定义的数据或函数都是全局的,在页面中可以通过var app = getApp();  app.function/key的方式调用,不过我们没有必要 ...

  5. vue 定义全局变量在一个组件内引用

    第一步: 第二步: 第三步: ok!!完了,当然了,你也可以在 main.js里面全局引用,然后用原型链挂在vue上面,用this的方法去获取!!

  6. vue组件挂载到全局方法

    在最近的项目中,使用了bootstrap-vue来开发,然而在实际的开发过程中却发现这个UI提供的组件并不能打到我们预期的效果,像alert.modal等组件每个页面引入就得重复引入,并不像eleme ...

  7. Vue 定义全局变量

    main.js 中定义 import Ws from './lib/ws' import ElementUI from 'element-ui'; import GlobalFunc from './ ...

  8. vue定义全局变量

    思路 将变量放到 window 对象上面 1.普通 创建 global.js window.a = 1; main.js 中引用 import './global.js' 实际使用 console.l ...

  9. angularjs定义全局变量

    angularjs定义全局变量 三种方法 直接外层定义全局变量 利用ng的value定义全局变量 利用ng的constant定义全局变量 Takl is cheap, Show me the code ...

随机推荐

  1. 对农行金e顺k令的一些猜测

    手上有一个未激活的农行金e顺k令 开机后要求输入12位的激活码,随机输入多次,均告失败 花了点时间猜想k令的工作模式: 已知: k令无法联网,出厂后除了输入激活码的机会外,无法获取任何信息 k令内部有 ...

  2. Java 基础【05】你的多继承纳?

    Java省略了许多很少用到,缺乏了解,混淆功能的C + +,在我们的经验中带来更多的悲伤大于收益 . -----James Gosling James Gosling 这个人大家应该很熟悉,就是最初设 ...

  3. Codeforces 196C Paint Tree(贪心+极角排序)

    题目链接 Paint Tree 给你一棵n个点的树和n个直角坐标系上的点,现在要把树上的n个点映射到直角坐标系的n个点中,要求是除了在顶点处不能有线段的相交. 我们先选一个在直角坐标系中的最左下角的点 ...

  4. 洛谷——P2737 [USACO4.1]麦香牛块Beef McNuggets

    https://www.luogu.org/problemnew/show/P2737 题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办 ...

  5. python使用Queue进行进程间通信

    1.Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信. 可以使用multiprocessing模块的Queue实现多进程之间的数据传递, Queue本身是一个消息列队程序: f ...

  6. css查缺补漏2

    15.布局流程 一.确定页面的版心; 二.确定页面中的行模块,以及每个页面中的列模块 三.制作HTML结构 例:.top+.banner+(.main>.left+.right)+.footer ...

  7. ajax跨域-springboot

    package com.xxxx.xx.service.configuration; import org.springframework.context.annotation.Bean; impor ...

  8. Class definition

    Prerequisite Articles (None) Related Articles Category Accessor method A class definition is the spe ...

  9. win10 配置pylucene

    参考文章 http://lxsay.com/archives/269 Windows 10 64 Bit 编译安装 PyLucene 6.2, 6.4 或 6.5 POSTED ON 2017-02- ...

  10. C++ 用libcurl库进行http通讯网络编程 【转】

    http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724318.html C++ 用libcurl库进行http通讯网络编程 目录索引: 一.Lib ...