组件global,用于存放用户登录信息。
global.vue
<script type="text/ecmascript-6">
const CLIENT_ID = '';
const USER_INFO = {};
const SESSION_GLOBAL = {};
export default {
CLIENT_ID,
USER_INFO,
SESSION_GLOBAL
}
</script>
header.vue
import global from '../../components/global/global.vue';
created(){
let cookie_arr = document.cookie.split(';');
for(let i = 0; i < cookie_arr.length; i++){
let cookieArrTrim = cookie_arr[i].trim();
if(cookieArrTrim.indexOf('client_id') == 0){
global.CLIENT_ID = cookieArrTrim.substring('client_id'.length + 1, cookieArrTrim.length);
if(global.CLIENT_ID !== ''){
this.$http.get('http://192.168.1.5/app/getClient.action', {
params: {
'clientId': global.CLIENT_ID
}
}).then(response => {
response = response.body;
global.USER_INFO = response.object;
this.user_info.avatar = global.USER_INFO.imgUrl;
this.user_info.user_name = global.USER_INFO.nickName;
this.user_info.phone = global.USER_INFO.phone;
console.log(global);
})
}
}
else{
return;
}
}
}
console.log(global);
sell_car.vue
import global from '../../components/global/global.vue';
console.log(global.CLIENT_ID);
但打印global是可以获取到的。
在safari和chrome里只有点开对象才能看见值,firefox里可以直接看到。
看到console.log()没点开的时候是没值的。估计还是使用时机的问题,即用到的时候还没有赋值,由于console.logd的机制,你需要在出问题的地方,使用
console.log(JSON.stringify(xxx))
转字符串输出看看。另外,看你的
global.vue
只是对外暴露了一个有三个属性的对象,没必要命名成.vue
文件,可以直接使用.js
文件,效果是一样的。