首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Export & Import用法总结

Export & Import用法总结

作者头像
Dickensl
发布2022-06-14 13:08:28
发布2022-06-14 13:08:28
5100
举报
文章被收录于专栏:睿Talks睿Talks

一、前言

最近在做React组件库升级的时候,发现以前这种旧的import方式不能用了:

代码语言:javascript
复制
import zent from 'zent';

const {Input, Notify} = zent;

要改成这种形式:

代码语言:javascript
复制
import {Input, Notify} from 'zent';

究其原因,是组件库的export方式改变了。旧版本是这样export的:

代码语言:javascript
复制
const zent = {
    Input, 
    Notify,
    ...
};

export default zent;

而新版本是这样的:

代码语言:javascript
复制
export {
    Input, 
    Notify,
    ...
};

二、知识点

Export支持2种方式,一种是 Named export(新版组件库),另一种是 Default export(旧版组件库)。

使用 Named export可以在import的时候指定子模块:

代码语言:javascript
复制
import {Input, Notify} from 'zent';

而使用Default export在import的时候只能引用模块整体:

代码语言:javascript
复制
import zent from 'zent';

后续使用子模块时再做解构:

代码语言:javascript
复制
const {Input, Notify} = zent;

另外,Named export 还有另外一种形式:

代码语言:javascript
复制
export const getAllDepts = () => {...};

export const getCurDept = () => {...};

export const getHeadquarter = () => {...};

也可以在使用的时候指定需要的子模块:

代码语言:javascript
复制
import {getAllDepts, getCurDept} from 'util'

如果在 Name export 中也使用 export default:

代码语言:javascript
复制
export const getAllDepts = () => {...};

export const getCurDept = () => {...};

export const getHeadquarter = () => {...};

export default getCurDept;

当 import 时不指定子模块,就会默认加载 default 子模块。

三、设计原则:

当模块有多个独立功能,可以分拆使用的时候(如工具类模块),应使用 Named export 的方式。当模块只包含一个独立的整体(如React组件),则使用 Default export 的方式。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、知识点
  • 三、设计原则:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档