页面的数据传递有2种方式
1.使用A页面拿到数据后放到全局变量里面,B页面从全局变量里面拿数据
2.A跳转到B的时候带上数据
这里我们介绍第一种
main.js全局变量
赋值
在main.js里面创建一个全局变量例如将后端的接口直接赋值到这里
Vue.prototype.serverUrl = "http://localhost:8001/bmft/ftcloud";
main.js
import Vue from 'vue'
import App from './App'
//全局后端url,这个值只能在这里写死,补能在js里面改变
Vue.prototype.serverUrl = "http://localhost:8001/bmft/ftcloud";
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
使用
在其他界面的script直接this.serverUrl
调用比如
uni.request({
url: this.serverUrl+'/user/login',
method: 'POST',
data: {
username: 'username',
password: 'password'
},
success: res => {
console.log(res.data);
}
});
**提示**
main.js 全局变量建议使用固定的值,因为在改变这个值的时候,其他界面并不会生效,(也许是main.js会重新加载,如果有大佬知道请留言给我谢谢)
App.vue globalData 全局变量
globalData可以解决mian.js无法重新赋值的问题,建议用来储存会改变的值
赋值
比如说下面我们赋值全局变量text = 'text'
<script>
export default {
globalData: {
text: 'text'
},
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
赋值
其他界面中我们使用getApp().globalData.text
来调用全局变量中的text
例如
//从返回值中获得token,然后储存在全局变量globalData中.
getApp().globalData.token = res.data.data.token;
使用
通过同样的手段使用.
var token = getApp().globalData.token;
console.log(token);