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; 的作用是什么?
按 es6 的规范 import * as obj from "xxx" 会将 "xxx" 中所有 export 导出的内容组合成一个对象返回。如果都使用 es6 的规范,这个是很明确的。
(2) 那么我们导出的对象在哪里使用了?为什么table.vue里面还是 从api.js 里面去取方法呢?
我们导出的对象,你在别的文件里面需要使用的话,就通过import { export } from "module-name"; 这种形式导入就好了。 因为在'../../api/api'这个文件里面,getUserListPage,removeUser...已经作为对象export出来了。