es6 import

index.js:
import * as api from './api';

export default api;

api.js:
import axios from 'axios';

let base = '';

export const requestLogin = params => { return axios.post(`${base}/login`, params).then(res => res.data); };

export const getUserList = params => { return axios.get(`${base}/user/list`, { params: params }); };

table.vue:
import { getUserListPage, removeUser, batchRemoveUser, editUser, addUser } from '../../api/api';

关于es6 封装方法以及导出导入有几个问题:
(1)import * as api from './api'; export default api; 的作用是什么?
(2)按 es6 的规范 import * as obj from "xxx" 会将 "xxx" 中所有 export 导出的内容组合成一个对象返回。如果都使用 es6 的规范,这个是很明确的。
(3) 那么我们导出的对象在哪里使用了?为什么table.vue里面还是 从api.js 里面去取方法呢?

阅读 4k
3 个回答

import * as api from './api' 把模块对象以api名字导进来;export default api把api作为默认导出

(1) import * as api from './api'; // 将api里面的模块对象组合成一个对象,就是api(第二个),导入进来

export default api; // 这个文件把api作为默认导出

(3) 我们导出的对象,你在别的文件里面需要使用的话,就通过import { export } from "module-name"; 这种形式导入就好了。 因为在'../../api/api'这个文件里面,getUserListPage,removeUser...已经作为对象export出来了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题